C# 怎么将webservice部署到IIS上
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 怎么将webservice部署到IIS上相关的知识,希望对你有一定的参考价值。
shop是总项目,服务是放在shop解决方案下的AdminWebservice下 ,调用服务的是shop下的web网站 aspx网站。
请问怎么怎么将webservice部署到IIS上(主要是要实现我这台机器上可以直接修改服务,不需要项目经理那里获取,我这里再更新服务就可以用 这样子)
1、选中服务项目,右键 发布
2、发布方法选择:文件系统
目标位置:是选择你发布后生成文件的位置 自己随便找个地方即可
然后点击 发布
参考技术A 在程序中添加Web引用,生成成功以后,右键点击解决方案里面的网站--发布网站--找一个地址---确定发布。
运行inetmgr--网站--默认网站--右键---新建---虚拟目录--随便起一个别名--找到你刚才发布的那个网站---权限哪里就全部都勾上吧(有个警告不用管)--确定---在默认网站下面找到发布的那一个--浏览。追问
这个方法你试过没,好像不行啊
找到你刚才发布的那个网站 是指发布网站的根目录么,还是网站App_Code目录下
(两个我都试过,好像不行,主要是运行localhost/虚拟目录/WebService.asmx 访问不了访问)
---权限哪里就全部都勾上吧(有个警告不用管)
这一步好像没有出现过
为啥 WebService (.Net C#) 在 HTTPS 上响应 404,在 HTTP 上响应 400
【中文标题】为啥 WebService (.Net C#) 在 HTTPS 上响应 404,在 HTTP 上响应 400【英文标题】:Why WebService (.Net C#) is responding 404 on HTTPS and responding 400 on HTTP为什么 WebService (.Net C#) 在 HTTPS 上响应 404,在 HTTP 上响应 400 【发布时间】:2021-03-20 17:33:27 【问题描述】:如何在 HTTPS 和 HTTP 中获得相同的响应。 我已经在 IIS 上安装了证书。 服务部署在 IIS 上。 主页在 HTTP 和 HTTPS 上给出相同的响应。
我的 Web 配置文件如下所示。
网络配置文件
<system.web>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
<system.serviceModel>
<services>
<service name="RestService.RestServiceImpl" behaviorConfiguration="ServiceBehaviour">
<endpoint address="" binding="webHttpBinding" contract="RestService.IRestServiceImpl" behaviorConfiguration="web"/>
<endpoint address="basic" binding="basicHttpBinding" name="HttpEndPoint" contract="RestService.IRestServiceImpl"/>
<endpoint address="Service1.svc" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehaviour">
<!-- To avoid disclosing metadata information, set the value below to false before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<webHttpBinding>
<binding name="webHttpBindingWithJsonP" closeTimeout="00:10:00"
openTimeout="00:10:00" receiveTimeout="00:10:00"
sendTimeout="00:10:00" maxBufferPoolSize="2147483647"
maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" crossDomainScriptAccessEnabled="true"/>
</webHttpBinding>
<wsHttpBinding>
<binding name="TransportSecurity">
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" minFreeMemoryPercentageToActivateService="0" aspNetCompatibilityEnabled="true"/>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<!--
To browse web app root directory during debugging, set the value below to true.
Set to false before deployment to avoid disclosing web app folder information.
-->
<directoryBrowse enabled="true"/>
</system.webServer>
On Https Error 404 On Http Error 400
【问题讨论】:
不使用证书时URL需要是HTTP,使用证书时需要HTTPS。确保正在为您使用的 URL 运行服务。如果是 HTTPS(使用 TLS 进行身份验证),如果 TLS 失败,您将不会得到任何响应。因此,要么您访问的站点不支持 HTTPS,要么 URL 不存在。 【参考方案1】:这是因为 https://localhost/webService/RestServiceImpl.svc/basic 不存在。如果使用 HTTPS,则 TLS 失败时不会收到任何响应。如果您访问 https://localhost/webService/RestServiceImpl.svc/basic/test,也会出现404错误。
还有一点需要注意的是,我们无法访问端点的地址。所有端点信息都包含在服务基地址的 WSDL 文件中。我们只能访问服务基地址。所有你应该访问 https://localhost/webService/RestServiceImpl.svc。
【讨论】:
以上是关于C# 怎么将webservice部署到IIS上的主要内容,如果未能解决你的问题,请参考以下文章