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上的主要内容,如果未能解决你的问题,请参考以下文章

如何将c#做好的asp.net网站部署到iis上

C# winfrom将文件通过IIS(http协议)上传到服务器上

做好的Webservice怎么发布到远程iis服务器

c# 在本地调试可以的,但部署到iis上到就报错。

部署WebService到IIS发生的错误

IIS默认网站里右击我要发布的web服务asmx文件,无法显示我写的方法,该怎么解决呢?本人是新手请老师帮!