在现有的ASP.Net,部署问题中托管WCF服务

时间:2014-11-17 15:41:37

标签: c# asp.net wcf deployment

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

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

2-通过添加>添加新的WCF服务新商品...... > 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地图。

知道问题出在哪里?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

  1. 将“.svc”扩展名和MIME类型添加为“应用程序/八位字节流”到“功能视图”中的IIS Mime类型。
  2. 通过从VS 2010命令提示符运行aspnet_regiis.exe -i命令注册Asp.net(以管理员身份运行)。
  3. 右键单击cmd,以admin身份运行,转到“C:\ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation”文件夹并运行:ServiceModelReg.exe -i
  4. 如果您在IIS中进行了一些更改,则可能需要转到处理程序映射,右键单击静态文件并选择“还原为父级”。