【问题标题】:Hosting WCF service in an existing ASP.Net , Deployment Issue在现有 ASP.Net 中托管 WCF 服务,部署问题
【发布时间】:2014-11-17 15:41:37
【问题描述】:

我正在尝试使用现有的 ASP.net Web 应用程序来托管 WCF 服务,因此我尝试了以下步骤,

1- 在 Visual Studio 2010 中,我通过 Web > ASP.net Web Application 模板创建了 Web 应用程序,命名为 WebApp

2- 通过 Add > New Item ... > WCF Service 添加了新的 WCF 服务,命名为 MyServ.

3- 修改MyServ.svc中的DoWork()方法如下,

来自

        public void DoWork()
        {
        }

        public string DoWork()
        {
             return "hello";
        }

因此我修改了 IMyServ.cs 以匹配新签名。

4- 当我在开发服务器上运行应用程序并访问 http://localhost:1399/MyServ.svc 时,服务运行良好。

5- 因此,我为此应用程序创建了一个发布,以准备将其托管在 IIS 上。

6- 在 IIS 中,我创建了一个名为 WebAppSite 的新网站,并获得了 111 端口,所以现在当我访问 http://localhost:111/ 时,我会被定向到已发布的 WebApp 站点默认页面,这很好,表明应用程序的 aspx 部分在 IIS 上运行良好。

7- 所以我尝试访问http://localhost:111/MyServ.svc 以检查服务是否部署成功,但我收到此消息,

HTTP 错误 404.3 - 未找到 由于扩展配置,无法提供您请求的页面。如果页面是脚本,则添加处理程序。如果应该下载文件,请添加 MIME 映射。

知道问题出在哪里吗?

【问题讨论】:

    标签: c# asp.net wcf deployment


    【解决方案1】:

    您需要在 IIS 中注册 .svc mime 类型

    运行“\%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe -i”

    【讨论】:

    • 非常感谢您的帮助,IIS 似乎现在可以理解服务文件,但不幸的是我现在收到此异常。无法从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”加载类型“System.ServiceModel.Activation.HttpModule”
    【解决方案2】:

    Here 是完整指南,请应用所有步骤:

    1. 在功能视图中将“.svc”扩展名和 MIME 类型作为“application/octet-stream”添加到 IIS Mime 类型。
    2. 通过在 VS 2010 命令提示符下运行 aspnet_regiis.exe -i 命令注册 Asp.net(以管理员身份运行)。
    3. 右键cmd,以管理员身份运行,进入“C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation”文件夹,运行:ServiceModelReg.exe -i

    如果您在 IIS 中进行了一些更改,您可能需要转到处理程序映射,右键单击静态文件并选择“恢复为父级”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 2011-07-26
      相关资源
      最近更新 更多