原文:[原创]经历:asp.net oracle 部署问题以及解决方法

精简的美丽......

一、环境
    开发环境
        win7 64bit
        Vs2010
        Oracle 11g r2 64bit
        <instantclient-basic-win32-11.2.0.1.0>
        
    部署环境
        winServer 2008 r2 64bit
        Oracle 11g r2 64bit
        <instantclient-basic-win32-11.2.0.1.0>
        iis7.5
    
二、部署问题及解决方法
    在VS项目上右键,选择"发布"。发布方式为"文件系统",指定目标位置。发布后找到目标文件夹,拷贝所有文件到服务器IIS中建立的目录里。以http://服务器ip:端口访问可以打开登录页,点击登录后显示"无法显示此页"。
    百度"无法显示此页",结果查找到无数条问与答。挑选排名靠前的几项试过之后问题依旧。
    无奈,Response.Write();Response.End();输出判断在执行到哪一步时出现上述问题。结果发现在执行Response.Redirect()时出现上述问题。Response.Write(跳转url),发现目标路径(...../index.aspx)中多了一个"/"。于是查找扩展方法VirtualRoot(),发现在对page.Request.ApplicationPath取值时并没有判断其是否以"/"结尾(是否处于已部署环境),修改此方法后问题解决。
        public static string VirtualRoot(this Page page)
        {
            var result = page.Request.ApplicationPath;
            result = !result.IsNullOrEmpty() && result.EndsWith("/") ? result : result + "/";
            return result;
        }

    现在可以正常登录了。登录发突然跳出一个对话框。xmlhttpobject。检查发现这是一个Ajax去访问WebService时出错打印的内容。错误代码是404。于是调试Ajax跟踪发现,还是路径问题。
    在开发环境中Js函数GetRootPath() /网上可以找到/可以正常返回虚拟路径。就像函数本身注释说的,它包含一个项目名称,而我们部署后是没有项目名称这个路径节点的,所以去掉项目名称后可以正常返回虚拟路径。然后再次登录后发现问题依旧。只是错误代码变理了500。继续百度,在经过尝试后发现更改Web.config,在system.web下增加
    <webServices >
        <protocols >
            <add name="HttpSoap"/>
            <add name="HttpPost"/>
            <add name="HttpGet"/>
            <add name="Documentation"/>
        </protocols>
    </webServices>
    后可以正常访问WebService。理由是iis默认不允许访问WebService(这是什么规定啊)。
    好了,网站总算能打开全部页面了。心情愉悦啊。Oh,man.what is going on?为什么会出现乱码?难道数据库字符集不对?赶快Plsql对比下两个数据库有什么不同?结果,shit。一样的。继续百度,并且wen.lu。在被网络上各种解决方案轰炸了N遍之后,终于在asp.net oracle 中文乱码 解决方法 找到了解决方法。人家说,不用更改什么字符集,要想让你的oracle支持unicode只需要在连接字符串里加上Unicode=True就可以了。加上,ok,网页是那让人讨厌的??总算没有了。
    
    以上是我第一次asp.net网站部署经历。留痕以备查阅。

经历:asp.net oracle 部署问题以及解决方法的更多相关文章

  1. [原创]经历:asp.net oracle 部署问题以及解决方法

    精简的美丽...... 一.环境    开发环境        win7 64bit         Vs2010        Oracle 11g r2 64bit        <inst ...

  2. Asp.Net 应用程序在IIS发布后无法连接oracle数据库问题的解决方法

    asp.net程序编写完成后,发布到IIS,经常出现的一个问题是连接不上Oracle数据库,具体表现为Oracle的本地NET服务配置成功:用 pl/sql 等工具也可以连接上数据库,但是通过浏览器中 ...

  3. Oracle OCI-22053:溢出错误解决方法

    原文 Oracle OCI-22053:溢出错误解决方法 Oracle 数值数据类型最多可存储 38 个字节的精度.当将 Oracle 数值转换为公共语言运行库数据类型时,小数点后边的位数可能过多,这 ...

  4. 记一次Win Server 2012部署问题及解决方法

    1.前言 本章内容为在win server 2012服务器部署时遇到的问题及解决方法.大致工作为:两台服务器,一台web.一台数据库:web服务器部署.net web程序,数据库服务器安装oracle ...

  5. PLSQL Developer不支持Oracle 64位客户端解决方法

    问题描述: 在虚拟机同网段,搭建Oracle 11.2.04数据库64位的,本机操作系统Win10 x64和PLSQL 9.03,目前想利用PLSQL远程登录ORACLE数据库操作.当初用 insta ...

  6. Asp.net导出Excel乱码的解决方法

    通过跟踪Asp.net服务器代码,没有乱码,然而导出Excel到浏览器后,打开时出现乱码. 解决方法是添加编码格式的前缀字节码:Response.BinaryWrite(System.Text.Enc ...

  7. Windows Server 2003下ASP.NET无法识别IE11的解决方法

    由于IE11对User-Agent字符串进行了比较大的改动,所以导致很多通过User-Agent来识别浏览器的程序,都相应的出现了无法识别IE11的情况.(普通用户端则可以通过这个方法来进行设置.) ...

  8. Windows Server 2003下ASP.NET无法识别IE11的解决方法【转】

    http://www.iefans.net/windows-server-2003-asp-net-ie11-shibie/ 由于IE11对User-Agent字符串进行了比较大的改动,所以导致很多通 ...

  9. Tomcat部署问题及解决方法

    1.gradle构建web时报错:Access restriction: The type JPEGImageEncoder is not accessible due to restriction ...

随机推荐

  1. [搜索] hdu 4016 Magic Bitwise And Operation

    主题链接: http://acm.hdu.edu.cn/showproblem.php?pid=4016 Magic Bitwise And Operation Time Limit: 6000/30 ...

  2. CSDN markdown 编辑 第五章 UML

    这里大概只能产生两种类型的图: 序列图 框图 序列图 ```sequence A->B: 一句话证明你非常寂寞. Note right of B: thinking B->B: count ...

  3. 83. 从视图索引说Notes数据库(上)

    索引是数据库系统重要的feature,不管是传统的关系型数据库还是时兴的NoSQL数据库,它攸关查询性能,因而在设计数据库时须要细加考量.然而,Lotus Notes隐藏技术底层.以用户界面为导向.追 ...

  4. HDU 4085 Steiner树模板称号

    Dig The Wells Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  5. UVA1232 - SKYLINE(段树部分的变化)

    UVA1232 - SKYLINE(线段树区间改动) 题目链接 题目大意:依照顺序盖楼.假设这个位置(当前要盖的楼覆盖范围内)要新建的楼的高度>=之前就有的最大高度,那么就+1.最后输出这个+1 ...

  6. 【足迹C++primer】47、Moving Objects(1)

    Moving Objects(1) * 功能:Moving Objects * 时间:2014年7月17日08:46:45 * 作者:cutter_point */ #include<iostr ...

  7. Object.extend

    原文:[转载]Object.extend Object.extend = function (destination, source) { for ( var property in source) ...

  8. NET使用了UpdatePanel后如何弹出对话框!

    原文:NET使用了UpdatePanel后如何弹出对话框! 在ajax中的UpdatePanel弹出对话窗,可以使用: ScriptManager.RegisterStartupScript(Upda ...

  9. UVA - 10014 - Simple calculations (经典的数学推导题!!)

    UVA - 10014 Simple calculations Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & ...

  10. jQuery本身方法($.each,$.map,$.contains,$ajax)

    常用工具方法 (1)$.trim $.trim方法用于移除字符串头部和尾部多余的空格. $.trim(' Hello ') // Hello (2)$.contains $.contains方法返回一 ...