如何在IIS 6.0上部署WCF服务

如何在IIS 6.0上部署WCF服务,wcf,iis-6,http-status-code-404,deployment,Wcf,Iis 6,Http Status Code 404,Deployment,我在Windows Server 2003上安装了IIS 6.0 我安装了.NET3.5和4Beta2。“正常”ASP工作正常(完美)。但是当我尝试导航到我的服务(/myServer/MyService.svc)时,我得到了一个404。找不到页面 确切地说,我得到了一个4042“Web服务扩展锁定策略来阻止这个请求 我使用ServiceModelReg.exe/ia确保我知道扩展名,并使用以下方法检查配置: 管理工具、iis、主页选项卡、配置、可执行文件框,以及: 扩展名:.svc,路径:c:\

我在Windows Server 2003上安装了IIS 6.0

我安装了.NET3.5和4Beta2。“正常”ASP工作正常(完美)。但是当我尝试导航到我的服务(
/myServer/MyService.svc
)时,我得到了一个404。找不到页面

确切地说,我得到了一个4042“Web服务扩展锁定策略来阻止这个请求

我使用
ServiceModelReg.exe/ia
确保我知道扩展名,并使用以下方法检查配置:

管理工具、iis、主页选项卡、配置、可执行文件框,以及:

扩展名:.svc,路径:
c:\windows\microsoft.net\framework\v4.0.210…
,动词:所有动词


看来一切都很好。但是我仍然有一个404-2。

你能给我们看看你的服务器端web.config(只是
部分)吗?您的服务位于服务器的何处

在IIS中托管时,您的服务地址由以下内容定义:

  • 服务器名称(或IP地址)
  • *.svc文件所在的虚拟目录(加上该目录下的任何子目录)的名称
  • *.svc文件本身
所以它会是这样的:

http://YourServer/YourVirtualDirectory/MyService.svc

您似乎没有在您提到的路径中使用虚拟目录-您的*.svc文件是否真的位于web服务器的根目录中,或者您是否忘记将虚拟目录添加到您的路径中?

这篇博文中的信息对于实现这一点非常有价值

我对IIS6不太清楚,但我在IIS7中创建了一个新网站(我无法在虚拟目录下工作,但这可能是我缺乏IIS知识),我将.svc文件放在根目录和~/Services中/

一切开始都很顺利

该博客提到,每当提供.svc文件时,IIS都应该自动在~/Services/中查找,但这不起作用。这就是为什么我只是将.svc文件复制到我的网站根目录中

希望这有帮助。

您的“web服务扩展锁定策略”正在阻止ASP.NET 4.0 ISAPI扩展处理您的请求。这件事发生在我身上,看看吧:

C:\>cscript c:\WINDOWS\system32\iisext.vbs /ListFile
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Connecting to server ...Done.

Status / Extension Path
------------------------
0  C:\WINDOWS\system32\inetsrv\httpodbc.dll
0  C:\WINDOWS\system32\inetsrv\ssinc.dll
0  C:\WINDOWS\system32\inetsrv\asp.dll
1  C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
0  *.exe
0  C:\WINDOWS\system32\inetsrv\httpext.dll
0  *.dll
1  C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll
1  C:\WINDOWS\system32\MQISE.DLL
0  C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll
您是否像我一样在v4.0 aspnet_isapi.dll旁边有一个“0”?这是你的问题。您需要启用它:

C:\>cscript c:\WINDOWS\system32\iisext.vbs /EnFile C:\WINDOWS\Microsoft.NET\Frame
work64\v4.0.30319\aspnet_isapi.dll
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Connecting to server ...Done.
Enabling extension file complete.

有关iisext.vbs工具的更多信息:

是否由您选择/希望.svc文件已由.NET 4处理?这正是我的问题。我目前正在解决旧服务器上的一个问题,让WCF在Win2003/IIS6上工作所花的时间比我预期的要长。