同一主机/端口上的 Wcf HTTP 和 HTTPS

2023-12-01

Hello,

我知道如何为 http 或 https 创建自托管 wcf,但不能同时创建。

我想要这两个网址的 wcf :

  1. https://127.0.0.1:13070/ProxySips/
  2. http://127.0.0.1:13070/ProxySips/

目前我已经配置了 https(带有证书:makecert + netsh)并且工作正常:

应用程序配置

<system.serviceModel>
<bindings>
  <basicHttpBinding>
    <binding name="basicHttp" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text">
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
      <security mode="Transport">
        <transport clientCredentialType="None"/>
      </security>
    </binding>
  </basicHttpBinding>
</bindings>
<services>
  <service name="ProxySips_Wcf.Sips" behaviorConfiguration="ProxySips_Wcf.ProxySipsBehavior">
    <host>
      <baseAddresses>
        <add baseAddress="https://127.0.0.1:13070/ProxySips/"   />
      </baseAddresses>
    </host>
    <endpoint address="" binding="basicHttpBinding"
              bindingConfiguration="basicHttp"
              contract="ProxySips_Wcf.ISips"/>
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="ProxySips_Wcf.ProxySipsBehavior">
      <serviceMetadata  httpsGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="True" />
      <dataContractSerializer maxItemsInObjectGraph="2147483647" />
    </behavior>
  </serviceBehaviors>
</behaviors>

Host

var serviceType = typeof(ProxySips_Wcf.Sips);
var host = new ServiceHost(serviceType);
host.Open();

可以帮我设置同一个地址的http版本吗?

非常感谢


您可以通过使用来做到这一点多个端点。通过多个端点,您可以通过多个协议(在您的情况下为 HTTP 和 HTTPS)支持相同的服务。

所以你需要添加以下内容ServiceBehavior:

<behavior name="MyUnsecureServiceBehavior">
     <serviceMetadata httpGetEnabled="true" />
     <serviceDebug includeExceptionDetailInFaults="false" />
     <dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>

然后是下面的Binding:

<basicHttpBinding>
  <binding name= MyUnsecureBindingConfig"
                 maxBufferPoolSize="2147483647" 
                 maxReceivedMessageSize="2147483647" 
                 messageEncoding="Text">
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
                   maxArrayLength="2147483647" maxBytesPerRead="2147483647" 
                   maxNameTableCharCount="2147483647" />
     <security mode="None">
         <transport clientCredentialType="None" />
         <message establishSecurityContext="false" />
     </security>
</basicHttpBinding>

最后是以下内容Address配置:

<service behaviorConfiguration="MyUnsecureServiceBehavior"
                         name="MyUnsecureService">
   <endpoint address="http://127.0.0.1:13070/ProxySips/"
             binding="basicHttpBinding"
             contract="ProxySips_Wcf.ISips"
             bindingConfiguration="MyUnsecureBindingConfig" />
   <endpoint address="mex"
             binding="mexHttpBinding"
             contract="IMetadataExchange"/>
</service>

UPDATE:

On your WCF Host应用程序中,您需要指定要侦听的新 URI。您可以像这样设置您的主机:

var httpsAddress = new Uri("https:// 127.0.0.1:13070/ProxySips/");
var httpAddress = new Uri("http://127.0.0.1:13070/ProxySips/");
var host = new ServiceHost(typeof(ProxySips_Wcf.Sips), 
                            new Uri[] { httpsAddress, httpAddress });
host.Open();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

同一主机/端口上的 Wcf HTTP 和 HTTPS 的相关文章

  • 无法序列化 System.Collections.Generic.Dictionary`2 类型的成员 ...,因为它实现了 IDictionary

    我试图通过 WCF 传递一个带有 Dictionary 属性的类 对于一种方法失败 但对于另一种方法有效 当类在 a 内返回时List 有用 但是当类在 a 中返回时DataTable 客户端只是说连接已断开并且没有显示错误 这是引起问题的
  • WCF 中的实例停用是什么?

    我最近接触到这个词Instance Deactivation a 那是什么 b 我们需要这个做什么 c 它在什么情况下有用 我正在寻找一个易于理解的简单答案 如果可能的话 可以使用一些伪代码 Thanks 当调用 WCF 方法时 它会传递给
  • SQL CLR 内的 WCF 客户端

    我知道它不受支持 而且我知道这甚至不是一个好主意 但是 我希望在 SQL 表值函数中拥有一个 WCF 客户端 我 看似 注册了正确的程序集 但在运行我的客户端时 我收到 WCF 错误 Msg 6522 Level 16 State 1 Li
  • 无法在 web.config 中为 WCF Web 服务设置服务名称属性

    我编写了一个运行良好的 WCF Web 服务 然后我从另一个应用程序复制了该 Web 服务的内容 并创建了一个新的 WCF 文件 该文件在 web config 中创建了一个新文件 但名称属性显示找不到命名空间 以下是我的 WCF 前几行的
  • WCF 中枚举的 DataContract

    我有一个通过 Net 项目中的 WCF 服务使用的枚举 现在我想添加另一个枚举 其指定方式与第一个枚举相同 但第二个没有在 Reference cs 中注册 因此无法被使用 WCF 服务的项目识别 当我读到如果复制粘贴枚举成员时 会有一个自
  • 强制 WcfSvcHost.exe 使用我的自定义服务主机

    是否可以强制 WcfSvcHost 当我执行 F5 或在解决方案中调试另一个项目时自动执行 使用自定义 ustom 服务 通过使用服务工厂 我的自定义服务主机在我的 asp net 主机容器中运行良好 该服务工厂又调用自定义服务库 但是当
  • .NET Web 服务 (asmx) 超时问题

    我正在连接到供应商提供的 Web ASMX 服务并通过线路发送一组数据 当您向项目添加服务引用时 我的第一次尝试遇到了 Visual Studio 默认在 app config 文件中引发的 1 分钟超时 我把它增加到 10 分钟 又是一次
  • WCF 模拟和 SQL 可信连接?

    我们有一个托管在 IIS7 下的服务 SQL 服务器的连接字符串设置为 受信任 为了进行身份验证 我需要在服务上设置模拟并让客户端启动模拟连接 有没有办法不设置模拟并仍然允许服务通过可信连接登录到 SQL Server 我们希望避免让客户端
  • 将 SAML 令牌与 Web 服务 (wsdl) 结合使用

    我已从提供商处获得了 wsdl 文件和 pfx 我致电 IdP 并获取 SAML 令牌 现在我需要将该令牌传递给 WebService 如何使用 SAML 令牌来处理 WebService 我正在使用 NET 4 5 在以下两篇文章的帮助下
  • 如何使用 MVVM-Light 和 WCF RIA 服务创建可混合项目

    我想使用 MVVM 模式构建我的业务应用程序 我选择 MVVM Light 因为它符合我的需求 在我见过的有关 MVVM Light 的每个示例中 没有人使用 WCF RIA 经典的 MIX10 示例在同一项目中使用服务 而 WCF RIA
  • WCF 客户端因服务中断而挂起

    我有一个相当简单的 WCF 服务 它为一堆智能客户端执行单向文件同步 我注意到 当通话期间出现网络或服务中断时 客户端将无法与服务器通信 直到整个应用程序重新启动 该服务运行于BasicHttpBinding并由 IIS6 一个 svc 页
  • 如何自定义 WCF 在序列化合约方法参数时采用的流程?

    我想设计一个人为的场景 但它有坚实的实际基础 想象一个集合类型 COuter 它是另一个集合类型 CInner 的实例的包装器 两者都实现了 IList 不用管 T 此外 COuter 实例隐藏在某个对象图内 其根 我们将其称为 R 是从
  • WCF - 如何增加消息大小配额

    我有一个 WCF 服务 它将 1000 条记录从数据库返回给客户端 我有一个 ASP NET WCF 客户端 我在 asp net Web 应用程序项目中添加了服务引用来使用 WCF 当我运行客户端应用程序时 我收到以下消息 传入消息的最大
  • 如何在 REST WCF 服务中接受任意 JSON 对象?

    我想实现这样的服务方法 OperationContract WebInvoke RequestFormat WebMessageFormat Json ResponseFormat WebMessageFormat Json public
  • WCF 服务 - 自定义主体

    在 WCF 服务类的构造函数中 我将当前主体设置为消息头中传递的主体的主体 Thread CurrentPrincipal OperationContext Current IncomingMessageHeaders GetHeader
  • WCF 服务已超出最大数组长度配额 (16384)

    我有一个 wsf 服务和一个客户端应用程序 在尝试与客户端和服务进行通信时 我收到以下消息 格式化程序在尝试反序列化消息时引发异常 尝试反序列化参数时出错http tempuri org blob http tempuri org blob
  • WCF 是否始终需要我的主机具有管理员权限?

    我正在跟进this http msdn microsoft com en us library ms730935 aspx教程 似乎要在我的应用程序中实现 WCF 它需要以管理员权限运行 我想使用远程处理only同一台机器上的进程之间进行通
  • 在 WCF Web 编程模型中,如何编写具有一组查询字符串参数(即具有相同名称)的操作协定?

    使用 WCF Web 编程模型 可以指定一个操作契约 如下所示 OperationContract WebGet ResponseFormat WebMessageFormat Xml UriTemplate SomeRequest qs1
  • 使用 ContractNamespace 属性设置 WCF DataContract 命名空间

    在设计我的服务时 我决定要自定义出现在生成的 WSDL 中的名称空间 对于数据合同 我遇到了合约命名空间 http msdn microsoft com en us library system runtime serialization
  • 从一个客户端使用多个 WCF 服务

    我的网络场有 10 台运行 IIS 的服务器 在每台服务器上我都有相同的网站和相同的 WCF 服务 它公开了一些用于读取 删除缓存 会话 应用程序变量和其他内部数据的功能 在其他一些 Web 服务器上 我有一个 管理 Web 应用程序 它是

随机推荐

  • 在 REST Api 中建模对象继承

    问题 我有一个应用程序有一个User对象和一个Student目的 Some用户是学生 所有学生都是用户 在数据库 基于 django ORM 中 这表示为Student具有外键的表User table 我正在尝试创建一个 REST API
  • 如何查看libc版本?

    这个问题与为什么 pclose 提前返回 我想知道是什么版本libc用于交叉编译的可执行文件 如下所述 存在一些限制 使答案在检查特定 gcc 编译器的 glibc 版本不适用 一种建议的检查方法libc版本是使用gnu get libc
  • 如何在 VB.NET 中进行按位与运算?

    我想在 VB NET 中执行按位与运算 采用一个 Short 16 位 变量并将其与 0000000011111111 进行 与 运算 从而仅保留最低有效字节 8 个最低有效位 我该怎么做 0000000011111111 表示为 VB 十
  • 如何使用 JavaScript 交换屏幕上的元素

    我有多个 li 元素 my lis 在页面上 我想用 JavaScript 来调整它们 我正在使用 JQuery 怎么做 实际上并不太难 总体思路是 获取所有dom节点 洗牌 清空 ul 并插入打乱后的节点 var items my lis
  • jQuery GetJSON 安全问题。复制 URL 并粘贴到浏览器中

    我在 ASP 页面中使用 jQuery GetJSON 调用 它类似于以下代码 ajax url myUrl myPage aspx callback BookARoom dataType json 这实际上最终会在我的系统中预订房间 但问
  • 蒙特卡洛模拟运行速度明显慢于顺序模拟

    一般来说 我对并发和并行编程的概念很陌生 我正在尝试使用计算 Pi蒙特卡罗法这是我的源代码 include
  • 类型错误:float() 参数必须是字符串或数字,而不是 FastAPI 中的“PatientAttendance”

    我目前正在使用 FastAPI 构建 API 来部署我的逻辑回归模型 由于某种原因 当我测试模型时 我在服务器文档中收到上述错误 我的代码如下 app FastAPI class PatientAttendance BaseModel ap
  • Numpy argsort 不稳定

    最近我一直在尝试np argsort我发现了一些奇怪的事情 如果运行以下代码 您将得到结果 In 0 np argsort 3 16 Out 0 array 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 dty
  • angularjs:将过滤后的数组传递给指令

    我正在寻找一种将过滤后的数组传递给指令的方法 我尝试过以下方法
  • 从草书连续手写图像中提取字符图像

    I am trying to extract individual character as an image from below 我有一个 python 代码 它能够按顺序提取每一行和单词 但是 它无法识别和提取每个字符 下面是我正在使
  • 通过链接报告中的返回链接按钮返回原始报告,并在主报告中使用多选参数

    我正在处理 ssrs 报告 我有一份总结和一份详细报告 详细报告链接到摘要报告 现在用户希望在详细报告中具有 返回摘要报告 链接 我的主要问题是我在摘要报告中有多选参数 如果我有单一选择参数 我就知道解决方案 在这种情况下 我可以创建一个文
  • “go run -gcflags -m xxx.go”的输出是什么意思

    尝试检查 go 程序中局部变量是否分配在堆或堆栈上 并且无法确定 go 的 gc 的某些输出的含义 Code 变量 堆 stack go variable heap stack learn run with go run gcflags m
  • nginx codeigniter 502 错误网关

    nginx的配置如下 server listen 80 server name www example com root home wwwroot example com index index php index html index h
  • 如何在C#中拦截每个尝试使用API​​函数?

    我需要阻止计算机上的任何屏幕捕获软件进行屏幕截图 由于它们都在标准 API 函数上工作 我想我可以监视和阻止它们 我需要使用 C 我所发现的只是如何在某个程序 屏幕捕获程序 中监视和阻止它们 他们在程序中寻找一个函数 然后将其地址更改为我的
  • 底层提供者在开放实体框架上失败

    我正在网络应用程序中取消实体框架 早些时候一切都工作正常 但后来我从 Sql Server 中删除了数据库 之后 每当我运行该应用程序时 我都会收到以下异常 The underlying provider failed on open en
  • Numpy 数组切片

    我有一个一维 numpy 数组和一些偏移 长度值 我想从该数组中提取属于偏移量 偏移量 长度范围内的所有条目 然后将其用于从原始数组构建一个新的 简化 数组 该数组仅包含由偏移量 长度对选取的值 对于单个偏移 长度对 这对于标准数组切片来说
  • 将函数应用于 data.table 中的每个指定列并按引用更新

    我有一个 data table 我想用它对某些列执行相同的操作 这些列的名称在字符向量中给出 在这个特定的示例中 我想将所有这些列乘以 1 一些玩具数据和指定相关列的向量 library data table dt lt data tabl
  • SSH 在通过 ipv6 连接时超时,但适用于 ipv4 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 昨天我重新安装了 Ubuntu 出于不相关的原因 从那时起 ssh 的行为就非常奇怪 连接需要很长时间 几分钟 使用 vvv 我发现它首先尝试使用 ipv6 连接 超时 然后尝试通过
  • Git - 如何将本地存储库提交到另一个本地存储库的子文件夹?

    我有一段时间开始了一个 Django 项目 并将其托管在 bitbucket 上 现在我需要将它托管在 openshift 上 方法是它们为您提供一个 git 存储库 每次您推送时它们都会自动部署 问题是存储库附带了几个用于配置和设置的顶级
  • 同一主机/端口上的 Wcf HTTP 和 HTTPS

    Hello 我知道如何为 http 或 https 创建自托管 wcf 但不能同时创建 我想要这两个网址的 wcf https 127 0 0 1 13070 ProxySips http 127 0 0 1 13070 ProxySips