经历:asp.net oracle 部署问题以及解决方法-阿里云开发者社区

开发者社区> 杰克.陈> 正文

经历:asp.net oracle 部署问题以及解决方法

简介: 原文:[原创]经历:asp.net oracle 部署问题以及解决方法 精简的美丽...... 一、环境    开发环境        win7 64bit         Vs2010        Oracle 11g r2 64bit                    部署环境        winServer 2008 r2 64bit        Oracle 11g r2 64bit                iis7.5    二、部署问题及解决方法    在VS项目上右键,选择"发布"。
+关注继续查看
原文:[原创]经历: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网站部署经历。留痕以备查阅。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
解决UnicodeEncodeError: &#39;ascii&#39; codec can&#39;t encode characters in position 问题(转)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 8-11: ordinal not in range(128) 解决UnicodeEncodeError: 'ascii' codec can't encode characters in position 转自:http://cooler1217.
1081 0
通过定制orabbix监控分析潜在的Oracle问题
在之前的博客中分享过 简单定制Orabbix监控项   http://blog.itpub.net/23718752/viewspace-1769773/ 定制的功能在Orabbix中实现非常灵活而且轻巧,还是能够感受到一种开源风的清爽。
793 0
解决Druid设置Oracle的Clob字段时的小坑
众所周知,Oracle有很多坑, 所以才有了去IOE。 在使用Druid做数据库连接池后,其实偶尔也会碰到小坑,这就是使用开源项目所必须去填平的。【如果使用不开源的产品,那就不是坑,而是陷阱了,你都不知道怎么去填坑】 用Druid连接池,通过JDBC往Oracle数据库的Clob字段插入数据,或者更新数据时,一个问题出现了。
2018 0
+关注
杰克.陈
一个安静的程序猿~
10427
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载