在IIS Express中托管WCF服务的问题

9
我们正在尝试在IIS Express 7.5 (7.5.1046)中托管WCF服务。IIS Express可以正确启动,但是当尝试连接我们的.svc文件时,我们遇到了一个异常,其中包含消息“无法加载DLL'nativerd.dll':指定的模块无法找到。(HRESULT异常:0x8007007E)”。
我们已经搜索了这个DLL文件,并且它存在于%WINDIR%\system32\inetsrv\nativerd.dll。我们正在使用的applicationHost.config文件基于IIS Express在用户目录中安装的模板。
该系统使用Windows 7作为操作系统,Visual Studio 2010 SP1和配置为运行WCF应用程序的IIS 7.5。
有人遇到过类似的问题吗?也许IIS在IIS Express安装中有影响?
3个回答

4
在比较一个正常运行的IIS Express安装和一个失败的安装后,我们发现问题在于用户的主目录中没有一个名为"IISExpress\config"的文件夹以及一些配置文件。这个文件夹只会在安装了IIS Express的用户的主目录中创建。将"config"文件夹复制到其他用户的主目录中"My Documents\IISExpress",我们就能够顺利地运行Web服务了。
希望这能帮助其他遇到同样问题的人。

如果 %userprofile%\documents\iisexpress\config 目录不存在,iisexpress.exe 在启动进程时会创建它。我不确定你是怎么没有 iisexpress\config 目录的!你是从命令行运行 iisexpress 还是在 WebMatrix 或 Visual Studio 中使用它? - vikomall
我们正在通过命令行启动它。对我们来说,这似乎也很奇怪,但问题在于我们不得不手动复制文件夹。我们正在使用一个没有管理权限的用户进行工作,也许是因为这个原因。 - Jose Antonio

2
在我的情况下,WCF项目正常打开,突然出现了这个错误(使用IIS Express也是如此)。
在项目属性中更改Web菜单下的port后,问题得到解决。
从:

http://localhost:50206/

到:

http://localhost:50207/

只需将端口号加1。我无法确定为什么会出现这种情况,在尝试删除bin和obj文件夹以及My Documents中的IISExpress文件夹之前,以上解决方案都没有帮助到我,但它确实帮助了其他人。
希望有一天能帮到某个人。

节省了我很多时间,非常感谢Alisson。我一直在尝试不以管理员身份运行VS2015,以便调试WCF,因为我曾经在某个地方读到IIS Express不支持WCF。但只需更改端口号就解决了问题。 - user5292841

0

我认为当您升级IIS Express时,它不会将某些条目添加到您的applicationhost.config文件中。我移动了配置文件夹并重新运行了我的Web项目,问题得到了解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接