当前位置:   article > 正文

WCF 部署在IIS上_wcf部署到iis

wcf部署到iis

作者:jiankunking 出处:http://blog.csdn.net/jiankunking


一、 环境vs2010,WCF应用程序,server 2008

第一步:WCF项目右键点击项目,选择生成部署包,如下图:



第二步:WCF项目上右键,选择:在windows资源管理器中打开文件夹,如下图:



第三步:第二步:在你项目所在的文件目录下找到Package文件夹,这就是我们的部署包所在的地方。在这个package文件夹下面有一个packageTmp。




第四步:在IIS上新建虚拟目录,将物理地址指向此文件夹。

1、windows server 2008中没有自带Microsoft .NET Framework 4,因此需要在网上下载,手动安装,安装时右键选择管理员身份运行。

下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=17718

2、完成.NET Framework 4后,重启服务器

3、在IIS上新建虚拟目录



点击确定,完成

4、第四部:部署结束。可以在浏览器中查看我们部署的WCF了。


哈哈,结果。。。。


这是应为默认的net版本不对,修改方式如下:


修改后,右键浏览,效果如下:

上图中的http://localhost/Test.svc?wsdl即为我们要引用的服务地址。

注意:如果在别的机器上引用该机的WCF服务时,需要将localhost替换为该机的ip

二、环境 win10 vs2015

今天在本机搭载iis wcf的时候,遇到了以下问题:

WCF  HTTP 错误 404.3 - Not Found(由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。)

        WCF 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。

        WCF 找不到类型“WcfServiceStudy.WcfService”,它在 ServiceHost 指令中提供为 Servi

          搭建的wcf是:WCF应用程序,具体代码如下:

        接口:

  1. namespace WcfServiceStudy
  2. {
  3. // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IWcfService”。
  4. [ServiceContract]
  5. public interface IWcfService
  6. {
  7. [OperationContract]
  8. string DoWork();
  9. }
  10. }
实现:

  1. namespace WcfServiceStudy
  2. {
  3. // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“WcfService”。
  4. // 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 WcfService.svc 或 WcfService.svc.cs,然后开始调试。
  5. public class WcfService : IWcfService
  6. {
  7. public string DoWork()
  8. {
  9. return "hello world!";
  10. }
  11. }
  12. }
配置文件如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <configuration>
  3. <appSettings>
  4. <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
  5. </appSettings>
  6. <system.web>
  7. <compilation debug="true" targetFramework="4.5.2" />
  8. <httpRuntime targetFramework="4.5.2"/>
  9. </system.web>
  10. <system.serviceModel>
  11. <bindings>
  12. <basicHttpBinding>
  13. <binding maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" name="MyServiceBinding">
  14. <readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" />
  15. </binding>
  16. </basicHttpBinding>
  17. </bindings>
  18. <services>
  19. <service name="WcfServiceStudy.WcfService">
  20. <endpoint address="Management" binding="basicHttpBinding" bindingConfiguration="MyServiceBinding" contract="WcfServiceStudy.IWcfService">
  21. </endpoint>
  22. </service>
  23. </services>
  24. <behaviors>
  25. <serviceBehaviors>
  26. <behavior>
  27. <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false -->
  28. <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
  29. <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
  30. <serviceDebug includeExceptionDetailInFaults="true"/>
  31. </behavior>
  32. </serviceBehaviors>
  33. </behaviors>
  34. <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  35. <protocolMapping>
  36. <add binding="basicHttpsBinding" scheme="https" />
  37. </protocolMapping>
  38. </system.serviceModel>
  39. <system.webServer>
  40. <modules runAllManagedModulesForAllRequests="true"/>
  41. <!--
  42. 若要在调试过程中浏览 Web 应用程序根目录,请将下面的值设置为 True。
  43. 在部署之前将该值设置为 False 可避免泄露 Web 应用程序文件夹信息。
  44. -->
  45. <directoryBrowse enabled="true"/>
  46. </system.webServer>
  47. </configuration>
部署的步骤是:

将WCF应用程序编译后的dll与config,分别放到对应位置


但在iis中浏览的时候,遇到了上面的三个问题。

根据自己的搭建步骤与问题解决,感觉问题出在:右键新建网站完成后。没有在自己新建的网站下添加应用程序,而是直接把网站的物理路径指向了自己新建的文件夹JianKunKingServices中。缺少了在网站下添加应用程序这一步,所有出现了一系列的问题,最后是通过把自己添加的文件夹JianKunKingServices转换为应用程序解决的。

猜测验证文章





本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/937180
推荐阅读
相关标签
  

闽ICP备14008679号