asp.net - 在 IIS 上托管 WCF Web 服务 - 在 VS 中工作,但在 IIS 中不工作

标签 asp.net wcf silverlight web-services

我是网络编程方面的新手,所以我的问题是关于基础知识的。我正在开发 SilverLight 应用程序,需要从中访问数据库。我正在使用 LINQ to SQL 从数据库中获取数据,并使用 WFC Web 服务将其传送到我的应用程序。

当我在 Visual Studio 中运行我的应用程序时,一切正常。尝试将 Web 服务发布到 IIS 时 - Web 服务调用失败。

为了让我的问题简单化,我将重点关注一个全新的网络服务。这是我正在执行的步骤:

  1. 启动 Visual Studio 2008 -> 文件 -> 新建 -> 项目 -> Web -> WCF 服务应用程序 项目名称:MyWcfService

  2. 结果 Visual Studio 生成了一个示例项目,其中包含已实现的 Web 服务“Service1”

  3. 重建,从 Visual Studio 开始(宿主在 ASP.NET 开发服务器上) --> 一切正常,我在 http://localhost:52489/Service1.svc 链接下看到我的服务

  4. 现在我想在我的 IIS 上托管此服务(我在 Vista x86 PC 上安装了 IIS7) Visual Studio -> 右键单击​​项目 -> 发布 -> 目标位置 -> 创建名为“MyWcfService”的新 Web 应用 -> 发布

  5. 请确保检查我的 C:\inetpub\wwwroot\ 文件夹 - 现在它包含“MyWcfService”子目录和所有必需的文件。

  6. 在我的电脑上打开 IE http://localhost/MyWcfService/Service1.svc

结果是:

HTTP Error 404.3 - Not Found The page you are requesting cannot be served because of the extension configuration. If > the page is a script, add a handler. If the file should be downloaded, add a MIME map.

我试图从 web.config 中删除“身份”部分 - 同样的问题。关闭防火墙也无济于事。

谁能帮帮我?我做错了什么?也许我遗漏了什么?

最佳答案

根据 Nicholas Allen ,项目经理 WCF/WWF,Silverlight @ Microsoft:

IIS 中的哪个注册负责处理 SVC 文件?
注册分为两部分。一部分与 ASP.NET 有关,另一部分与 WCF 有关。 ASP.NET 部分是 ASP.NET ISAPI 必须是 IIS 的服务扩展。 WCF 部分是 HTTP 处理程序必须是托管处理程序。

设置这两部分的命令是2.0框架工具中的“aspnet_regiis –i –enable”和3.0框架工具中的“ServiceModelReg.exe -r”。

这会导致托管处理程序“System.ServiceModel.Activation.HttpHandler、System.ServiceModel、Version=3.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089”和 ISAPI 模块“%SystemRoot%\Microsoft.NET\Framework\v2”。 0.50727\aspnet_isapi.dll"对于 IIS 中的 *.svc 文件。在 IIS 处理程序映射中,托管处理程序必须在 ISAPI 模块之上才能工作。

这两个部分一起启动 HTTP 管道并将生成的请求传递到 WCF。

关于asp.net - 在 IIS 上托管 WCF Web 服务 - 在 VS 中工作,但在 IIS 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2193925/

相关文章:

c# - Silverlight/WPF无法绑定(bind)ListBox

c# - 系统.StackOverflowException

c# - WCF 和服务发现超时

WPF/银光 : How to disassemble a XAML from a DLL file?

c# - 如何从 WCF 服务响应中删除 outerXML

wcf - 数据合约中未设置数据成员字段时如何不返回 null

flash - 实时音频流替代方案 * 无 * Flash、Silverlight

c# - 使用 EF 更新 PK 时出错

asp.net - 如何用 mvc4 actionlink 列表替换列表

c# - Graphics.DrawImage OutOFMemory 异常