当我们在应用WCF进行程序开发中,是经常会遇到一些比较棘手的问题,这些问题需要我们通过不断的经验积累来掌握技巧进行解决。那么,接下来我们将会了解到一些IIS托管WCF服务中遇到的问题及解决方法。
如果你创建寄宿在IIS中的WCF Service网站项目,(图1显示怎样创建这样的网站项目),或者你把你的WCF Web Application项目或者WCF Service网站项目发布或部署到IIS网站服务器上后,你可以用网页浏览器去访问你的网站。如果你在尝试打开这些网页时无法看到正确的页面显示,或者看到错误提示页面(图2是错误提示页面的一个例子: HTTP Error 500.21 – Internal Server Error Handler “svc-Integrated” has a bad module “ManagedPipelineHandler” in its module list),下面是IIS托管WCF服务中最常见的问题和解决办法。
图1
图2
IIS托管WCF服务常见问题与解决办法:
1. 检查IIS是否正确安装和运行
你需要保证你的IIS服务器已经正确安装并正常运行。这里我们不讨论IIS安装的方法(你可你根据你的Windows版本和需要的IIS版本去bing中搜索), 只给出简单的验证方法。如图2所示,在IE地址栏中输入http://localhost, 如果你看到如图所示的页面或者类似的其他版本IIS的默认页面。那么就说明IIS已经在正常运行了。
图3
2. 正确注册安装ASP.net#t#
打开Visual Studio命令行提示工具(Start->All Programs->Visual Studio->Visual Studio Tools->Visual Studio Command Prompt, 如果你的OS是Windows Vista及以后的版本,你需要以管理员身份打开),运行”aspnet_regiis.exe -i”。在命令运行完成后重新尝试你的网站。
3. 在IIS中配置正确的Application Pool
在IIS管理工具(IIS Manager)中找到你的Website, 选中。在右侧的面板中点击Basic Settings。 你将看到如图3所示的弹出窗口,其中有你正在使用的Application Pool的信息。 选择IIS管理工具中的Applications Pools节点。选中你在使用的Application Pool, 点击右侧的Basic Settings。 你将看到如图4所示的弹出窗口。确定其中的.NET Framework版本是v4.0.xxxxx。如果不是,这也许就是你看到错误页面的原因。尝试在图2中把它改成v4.0或者在图3中选择”Select…”, 更改成其他的使用.NET Framework v4.0的Application Pool。
图4
图5
4. 安装注册WCF组件
WCF没有正确的在IIS中注册也许是导致看到错误页面的最常见原因。如果你在安装Visual Studio后才安装IIS, 那么你在IIS托管WCF服务中,就很可能遇到这样的问题。打开Visual Studio命令行提示工具(Start->All Programs->Visual Studio->Visual Studio Tools->Visual Studio Command Prompt, 如果你的OS是Windows Vista及以后的版本,你需要以管理员身份打开),运行” ServiceModelReg.exe –ia”。 命令完成后再次访问你的WCF 网站。