zoukankan      html  css  js  c++  java
  • 在MONO下实现WCF所遇到的问题

    最近要在Linux上移植一套.net开发的B/S系统,首先需要部署一个WCF服务,系统选用CentOS,现用虚拟机测试,已安装mono 2.10.6,xsp2,mod_mono和httpd,一切部署,建立测试用的aspx页面,访问正常,xsp的测试网站也全部正常.

    安装方法 http://www.cnblogs.com/aquilahkj/archive/2011/11/03/2234380.html#

      编辑/etc/httpd/conf.d/mod_mono.conf

    在下方加入 AddType application/x-asp-net .svc 这样mod_mono才会解析WCF的svc页面.


    建立测试用的WCF程序放进服务器,输入地址访问服务svc页面,报500错误  

      Contract 'MyWcfApp.IService1' was not found in the implemented contracts in this service host.

    google很久也没有结果,测试服务在windows下正常访问,无任何问题,无论怎修改方法和特性标签也没用,折腾到最后,发现~~原来是编译版本的问题,在windows下使用了3.5的的framework编译,改为4.0就没有问题,原因应该是我们mod_mono.conf中,把MonoServerPath设置为mod-mono-server4,所以需要用4.0的框架编译.

    用4.0编译后再次打开连接,返回soap错误

    anyType was already contained in the schema object table. Consider setting MONO_STRICT_MS_COMPLIANT to 'yes' to mimic MS implementation. Related schema item SourceUri

    google了文章  http://archive.cnblogs.com/a/2113112/ 发现应该是环境变量的问题,需要设置环境变量MONO_STRICT_MS_COMPLIANT=yes

    有两个方法解决:

    1. 在WCF网站中新增Global.asax文件,修改代码如下

    protected void Application_Start(object sender, EventArgs e)

            {

    #if MONO

                Environment.SetEnvironmentVariable("MONO_STRICT_MS_COMPLIANT", "yes");

    #endif

            } 

    2.修改/etc/rc.d/init.d/httpd

    在末端添加如下代码:

    MONO_STRICT_MS_COMPLIANT=yes

    export MONO_STRICT_MS_COMPLIANT 

    httpd作为服务随系统启动时,加入该环境变量,并export 

    配置完成后,在windows编写测试客户端测试,能正常调用,但每次首次调用时连接时程序卡了10多秒,之后请求就很快了,不知原因为何,还望指点,另外如果我在服务端抛出异常时,客户端就报一下错误

    Addressing Version 'AddressingNone (http://schemas.microsoft.com/ws/2005/05/addressing/none)' does not support adding WS-Addressing headers. 

    不会报我服务器实际的异常错误.也找不到解决方法,但当把客户端部署在CentOS直接调用访问服务端时,连接只卡了1秒多,并且也能抛出真正异常.估计是mono生成的SOAP请求问题吧.

  • 相关阅读:
    使用VIRTUALBOX安装ANDROID系统 | 图文教程 | 相关设置
    android-x86 下载地址
    java 返回某一天的周日和现在这一周的周日
    使用github上的开源框架SlidingMenu环境的搭建,以及getSupportActionBar方法不能找到的问题
    UI 组件
    git 初始化
    Android,visibility属性
    android去掉标题栏
    error opening trace file: No such file or directory (2) ,can't load transform_config.xml
    Ubuntu下解压缩文件
  • 原文地址:https://www.cnblogs.com/aquilahkj/p/2244316.html
Copyright © 2011-2022 走看看