WCF 部署在IIS上

简介: 一、 环境vs2010,WCF应用程序,server 2008第一步:WCF项目右键点击项目,选择生成部署包,如下图:第二步:WCF项目上右键,选择:在windows资源管理器中打开文件夹,如下图:第三步:第二步:在你项目所在的文件目录下找到Package文件夹,这就是我们的部署包所在的地方。在这个package文件夹下面有一个packageTmp。第四步:在IIS上新建

一、 环境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应用程序,具体代码如下:

        接口:

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

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

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.5.2" />
    <httpRuntime targetFramework="4.5.2"/>
  </system.web>
  <system.serviceModel>

    <bindings>
      <basicHttpBinding>
        <binding maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" name="MyServiceBinding">
          <readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" />
        </binding>
      </basicHttpBinding>
    </bindings>
    <services>
      <service name="WcfServiceStudy.WcfService">
        <endpoint address="Management" binding="basicHttpBinding" bindingConfiguration="MyServiceBinding" contract="WcfServiceStudy.IWcfService">
        </endpoint>
      </service>
    </services>


    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false -->
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
          <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
    <protocolMapping>
      <add binding="basicHttpsBinding" scheme="https" />
    </protocolMapping>

  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <!--
        若要在调试过程中浏览 Web 应用程序根目录,请将下面的值设置为 True。
        在部署之前将该值设置为 False 可避免泄露 Web 应用程序文件夹信息。
      -->
    <directoryBrowse enabled="true"/>
  </system.webServer>

</configuration>
部署的步骤是:

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


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

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

猜测验证文章





相关文章
|
2月前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
94 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详细教程
202 3
|
5月前
|
弹性计算 持续交付 Docker
阿里云云效产品使用合集之如何部署到阿里云服务器上的 Windows Server 上的 IIS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
5月前
|
前端开发 JavaScript 应用服务中间件
windows server + iis 部署若伊前端vue项目
5,配置url重写规则(重写后端请求) 注:如果没有Application Request Routing Cachefourcloudbdueclaim和URL重写,则是第二部的那两个插件没装上 打开iis,点击计算机->点击Application Request Routing Cache -> 打开功能
292 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访问应能正常工作。
333 0
|
7月前
|
存储 网络安全 数据安全/隐私保护
Windows Server 2019 IIS HTTPS证书部署流程详解
Windows Server 2019 IIS HTTPS证书部署流程详解
630 0
|
6月前
|
网络协议
windows_server2012搭建iis并配置http重定向 iis转发
windows_server2012搭建iis并配置http重定向 iis转发
338 1
|
4月前
|
开发框架 .NET 中间件
【Azure 云服务】在Cloud Service的代码中如何修改IIS Application Pool的配置呢? 比如IdleTimeout, startMode, Recycling.PeriodicRestart.Time等
【Azure 云服务】在Cloud Service的代码中如何修改IIS Application Pool的配置呢? 比如IdleTimeout, startMode, Recycling.PeriodicRestart.Time等
【Azure 云服务】在Cloud Service的代码中如何修改IIS Application Pool的配置呢? 比如IdleTimeout, startMode, Recycling.PeriodicRestart.Time等
|
6月前
|
Windows
iis配置http重定向302转发get请求并去掉最后的斜杠/ iis重定向 iis去除url最后的斜杠 iis重定向链接斜杠(已解决)
iis配置http重定向302转发get请求并去掉最后的斜杠/ iis重定向 iis去除url最后的斜杠 iis重定向链接斜杠(已解决)
198 0
下一篇
DataWorks