WCF服务部署到IIS上,然后通过web服务引用方式出现错误的解决办法

简介: 本文转载:http://www.cnblogs.com/shenba/archive/2012/01/06/2313932.html 昨天在用IIS部署一个WCF服务时,碰到了如下错误: 理解了文档内容,但无法进行处理。

本文转载:http://www.cnblogs.com/shenba/archive/2012/01/06/2313932.html

昨天在用IIS部署一个WCF服务时,碰到了如下错误:

理解了文档内容,但无法进行处理。
  - WSDL 文档包含无法解析的链接。
  - 下载“http://admin-pc/IISHostService/Service1.svc?xsd=xsd0”时出错。
  - 基础连接已经关闭: 接收时发生错误。
  - 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。
  - 远程主机强迫关闭了一个现有的连接。
元数据包含无法解析的引用:“http://admin-pc/IISHostService/Service1.svc?wsdl”。
元数据包含无法解析的引用:“http://admin-pc/IISHostService/Service1.svc?wsdl”。
如果该服务已在当前解决方案中定义,请尝试生成该解决方案,然后再次添加服务引用。

该错误是在使用svcutil生成client代码时报的错误,服务是部署在IIS7上,部署的过程都是完全教科书式的进行。服务也正常启动了,显示如下内容

已创建服务。

若要测试此服务,需要创建一个客户端,并将其用于调用该服务。可以使用下列语法,从命令行中使用 svcutil.exe 工具来进行此操作:

svcutil.exe http://leo-pc/IISHostService/Service1.svc?wsdl
按照提示直接用svcutil.exe http://admin-pc/IISHostService/Service1.svc?wsdl命令去生成代码,就出现了开头说的那个错误。而如果用visual studio的webdevserver启动,则一切正常。

经过一轮谷百之后,发现网上有很多类似的情况,有的说是因为用了wsHttpBinding协议引起的,或者是元数据没有正确公开,但都不是他们说的情况。后来找到了一篇文章,说的是添加WCF引用的一个陷阱。里面提到的情形跟我遇到的一致,原来问题出在权限,难怪用webdevserver可以很正常的运行
。原来在下载http://admin-pc/IISHostService/Service1.svc?xsd=xsd0时的权限不足,在浏览器直接访问这个url会提示找不到页面。原因就是IIS进程的用户没有访问Windows\Temp目录的权限。找到Temp目录,然后找到IIS_USER用户,授权即可。 具体可参考:http://merill.net/2008/04/wcf-add-service-reference-gotcha-with-windows-server/

 WCF服务部署到IIS上,然后通过web服务引用方式出现错误的解决办法;如果wcf服务没有托管在IIS上,只是在本地浏览方式托管后通过web服务引用方式是没有这样的问题。

问题描述是这样的。

1、通过vs自带的wcf服务DEMO,发布到IIS 上去的时候,通过web服务引用时候出错。

2、WCF客户端通过web服务引用时候,http://10.198.1.21:8089/Service1.svc 一直无法正常的添加引用。

然而通过http://10.198.1.21:8089/Service1.svc?wsdl 是可以正确的查看元数据信息。

3、 最终解决办法是:原因就是IIS进程的用户没有访问Windows\Temp目录的权限。找到Temp目录,然后找到IIS_USER用户,授权即可。

为Temp目录条件IIS_USER用户。

 添加方法如下截图:

5、修改Temp目录后,成功添加web服务引用:

目录
相关文章
|
2月前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
111 1
|
4月前
|
C++
【Azure云服务 Cloud Service】如何在部署云服务Cloud Service时候通过启动任务Start Task来配置IIS (如开启ARR)
【Azure云服务 Cloud Service】如何在部署云服务Cloud Service时候通过启动任务Start Task来配置IIS (如开启ARR)
|
4月前
|
开发框架 .NET API
在IIS上部署ASP.NET Core Web API和Blazor Wasm详细教程
在IIS上部署ASP.NET Core Web API和Blazor Wasm详细教程
215 3
|
4月前
|
开发工具 开发者 Windows
Windows10 IIS Web服务器安装配置
Windows10 IIS Web服务器安装配置
159 2
|
5月前
|
弹性计算 持续交付 Docker
阿里云云效产品使用合集之如何部署到阿里云服务器上的 Windows Server 上的 IIS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
5月前
|
前端开发 JavaScript 应用服务中间件
windows server + iis 部署若伊前端vue项目
5,配置url重写规则(重写后端请求) 注:如果没有Application Request Routing Cachefourcloudbdueclaim和URL重写,则是第二部的那两个插件没装上 打开iis,点击计算机->点击Application Request Routing Cache -> 打开功能
302 0
|
6月前
|
应用服务中间件 网络安全 数据安全/隐私保护
SSL证书在IIS上部署使用
该文介绍了如何在IIS上部署SSL证书以实现HTTPS访问。首先建议使用nginx,但若需使用IIS,需有SSL证书(fullchain.pem和privkey.pem)并熟悉IIS操作。文中提供了两种证书转换方法:已有openssl,使用命令`openssl pkcs12 -export`生成.pfx文件;无openssl,通过Python脚本(pyOpenSSL v23.2.0)转换。转换后的.pfx文件导入Windows,选择“本地用户”并输入密码。最后在IIS中绑定证书,测试https访问应能正常工作。
343 0
|
6月前
|
Windows
win10家庭版安装iis 微软web服务器 windows安装IIS web服务器
win10家庭版安装iis 微软web服务器 windows安装IIS web服务器
80 0
|
安全 关系型数据库 MySQL
【IIS搭建网站】本地电脑做服务器搭建web站点并公网访问「内网穿透」
【IIS搭建网站】本地电脑做服务器搭建web站点并公网访问「内网穿透」
|
7月前
|
Kubernetes 网络安全 Windows
要在云效部署到阿里云服务器上的 Windows Server 上的 IIS
【2月更文挑战第18天】要在云效部署到阿里云服务器上的 Windows Server 上的 IIS
503 4