标签: wcf

对 Web.Config 文件的更改是否需要我重新启动 IIS?

我有一个 WCF 组件,它是我在 VS 2008(使用 .NET framework 3.5)中编写的,安装在 Windows 2003 Server 上。我在使用其中一种方法时遇到了一些问题,为了尝试调试问题,我被建议向 Web.Config 文件添加一些诊断信息。现在,这个 WCF 服务器此时根本没有得到太多使用,所以我可以只在 Web.Confilg 文件中进行编辑,然后用我的新客户端应用程序运行测试吗?或者我是否必须停止并重新启动 Windows 2003 Server 上的 IIS?

iis-6 wcf

14
推荐指数
1
解决办法
4万
查看次数

如何使用负载均衡器在 IIS 中使用 WCF 服务 HTTPS 绑定和端点配置?

我们有一个 WCF 服务托管在一组 12 台机器上。有一个负载平衡器是这些机器的网关。

现在站点设置为 SSL;就像用户通过使用带有 https 的 URL 访问它一样。我知道这么多,该站点的 URL 是 https,但没有任何服务器具有 https 绑定或设置为需要 SSL。这让我相信负载平衡器处理 https 并且从平衡器到服务器的连接是未加密的(这发生在防火墙后面,所以没什么大不了的)。

我们遇到的问题是,当 Silverlight 客户端尝试访问 WCF 服务时,它会收到“未找到”错误。我已经与我们的开发人员机器一起建立了一个测试站点,并确保 web.config 中的绑定和端点与客户端一起工作。在生产环境中,我们收到此错误似乎就是这种情况。

下面的 web.config 有什么问题吗?我们应该设置如何以不同的方式处理 https 吗?

我们目前对此不知所措,因为我已经尝试了所有带有端点和绑定的程序化解决方案。我发现的所有解决方案都没有以我们处理的方式处理负载平衡器。

Web.config 服务模型信息:

  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="TradePMR.OMS.Framework.Services.CRM.CRMServiceBehavior">
          <serviceMetadata httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
        <behavior name="TradePMR.OMS.Framework.Services.AccountAggregation.AccountAggregationBehavior">
          <serviceMetadata httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>          
      <customBinding>    
        <binding name="SecureCRMCustomBinding">
          <binaryMessageEncoding />
          <httpsTransport />
        </binding>

        <binding name="SecureAACustomBinding">
          <binaryMessageEncoding />
          <httpsTransport />
        </binding>
      </customBinding>
      <mexHttpsBinding>
        <binding name="SecureMex" />
      </mexHttpsBinding>
    </bindings> …
Run Code Online (Sandbox Code Playgroud)

iis-7 https load-balancing wcf

8
推荐指数
1
解决办法
2万
查看次数

IIS 获取失败请求的完整错误消息

我设置了 IIS 并为我的网络服务提供服务。不幸的是,如果网络服务抛出异常,我得到的只是一个带有标题失败请求的蓝色框。

我有什么选择才能真正看到哪里出了问题?我更喜欢获取异常消息和堆栈跟踪。

我已经设置了“失败的请求跟踪”,但目录仍然是空的。如果可能,我更愿意直接在浏览器中获取堆栈跟踪。

如果这很重要:我在 Win 7 64 Pro 机器上有一个 IIS 7.5。Web 服务是一个 WCF C# 项目。

windows iis wcf iis-7.5

8
推荐指数
2
解决办法
9663
查看次数

如何防止浏览器提示输入客户端证书并允许 IIS 接受它(不需要它)?

在 Web 应用程序中,我有一个 WCF 服务使用客户端证书身份验证。我在 IIS - SSL 设置中检查了“接受客户端证书”,它工作正常。但有时,在某些浏览器中,如果客户端计算机上安装了证书,浏览器会提示一条消息,选择它想要提供给服务器的证书,这不是我们想要的行为,因为只有Web 服务需要证书 -不是网络应用程序!。

如何在不为 IIS 上的 Web 服务创建独立 Web 项目的情况下处理它?

iis authentication wcf

8
推荐指数
1
解决办法
7554
查看次数

IIS 7 WCF Webservices 通过 HTTPS 给出 404 错误

我有一些在 IIS 7.5 下运行的 WCF web 服务,它们正确响应 http 请求,但在使用 SSL 调用方法时响应 404(未找到)错误。

该站点的绑定如下:

IIS 7 站点绑定

当调用http://127.0.0.1:8088/Public/PublicDataService.svc 时,我得到了预期的响应:

您已经创建了一个服务。

要测试此服务,您需要创建一个客户端并使用它来调用该服务。您可以使用命令行中的 svcutil.exe 工具使用以下语法执行此操作:等

同样,调用任何 Service 方法都有效,有一个最基本的方法叫做 CanConnect,它只返回“true”

http://127.0.0.1:8088/Public/PublicDataService.svc/CanConnect

真的

使用 https 时,结果如下。

https://127.0.0.1/Public/PublicDataService.svc

您已经创建了一个服务。

要测试此服务,您需要创建一个客户端并使用它来调用该服务。您可以使用以下语法从命令行使用 svcutil.exe 工具执行此操作:

https://127.0.0.1/Public/PublicDataService.svc/CanConnect

“/Public”应用程序中的服务器错误。

无法找到该资源。

描述:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、更改名称或暂时不可用。请检查以下 URL 并确保其拼写正确。

请求的 URL:/Public/PublicDataService.svc/CanConnect

版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.6.1055.0

这让我完全被难住了,如何调用 .svc 工作但它的内部方法给出 404?更令人困惑的是,这是有效的……事实上,我什至不确定它何时停止,即它是否对应于代码发布或服务器补丁等。

网站的实际配置是这样的:

Webservices (this is the root of the application / where the Web.Config sits)
- Public (a windows directory, no addition config)
Run Code Online (Sandbox Code Playgroud)

还有许多其他服务直接在根目录下运行,它们在 http 和 https 下都运行良好。 …

http iis-7 https wcf http-status-code-404

8
推荐指数
1
解决办法
2万
查看次数

IIS7 文件夹权限

我构建了一个基本的 WCF 服务,我现在想要在 Windows Server 2008 R2 下的 IIS7 中托管该服务。

我将该服务添加为默认网站下的应用程序,但每当我尝试运行该应用程序时,都会出现以下错误:

HTTP Error 500.19 - Internal Server Error The requested page cannot be accessed because the related configuration data for the page is invalid.

Config Error - Cannot read configuration file due to insufficient permissions

使此服务正常工作的唯一方法是在添加服务时选择“以服务器管理员身份连接”。“应用程序用户(直通身份验证)”选项似乎不起作用。

任何人都可以帮助我,我刚开始使用 IIS7,不知道该怎么做...谢谢

permissions iis-7 wcf

7
推荐指数
1
解决办法
1007
查看次数

本地主机上的 IIS 非常慢

我在 Windows Vista 双核 CPU 上使用 IIS7。第一次使用 WCF 服务或 ASP.NET webform 有时需要超过一分钟的时间,这对我来说是不可接受的。

我将应用程序配置为使用 Classic .NET 应用程序池并尝试使用Maximum worker processes,首先将其设置为 4,但将其重新设置为 1,因为它没有达到预期的结果。还有其他我可以尝试的事情吗?

iis-7 asp.net wcf

6
推荐指数
2
解决办法
3万
查看次数

计算机重启后证书停止工作

遇到一个奇怪的问题,我找不到任何线索。我们有一个程序 (Qlikview),它通过 SSL(Qlikview 服务器)与远程管理服务对话,但它使用证书来验证客户端。

该问题发生在任何客户端计算机上(在不同的机器上复制)。该过程发生/复制问题:

  1. 在本地计算机 > 个人上安装带有私钥的 .pfx 证书。(使用 MMC 控制台)。

  2. 应用程序启动(完美运行)并且可以使用证书。

  3. 重新启动 PC,应用程序失败并显示错误消息:无法为具有授权的 SSL/TLS 建立安全通道(由于证书错误)

  4. 重新安装证书和应用程序再次工作。

  5. 重新启动 PC,应用程序无法再次运行。(重复过程)。

为了看看我们是否可以进一步复制,我导出然后重新导入失败的证书,应用程序再次运行。我们可以将其复制到使用相同身份验证方法的其他应用程序中。任一阶段(在 MMC 中查看)的证书在每一步都显示为有效且正确。

我真的很茫然。任何建议表示赞赏。

windows ssl certificate wcf tls

6
推荐指数
3
解决办法
8812
查看次数

如何在 Windows 中为帐户添加权限?

鉴于:

  • 运行 Windows 2008 的虚拟机
  • 我使用我的域帐户 (SHUNRANET\markk) 登录那里
  • 我已将“创建全局对象”权限添加到我的域帐户:
  • 虚拟机重新启动(我知道注销/登录就足够了,但我不得不重新启动)
  • 我使用相同的域帐户再次登录。好像还是有特权的: 在此处输入图片说明
  • 我运行一些进程并使用进程资源管理器检查其安全属性。该帐户似乎没有特权在此处输入图片说明

这不是一种闲散的好奇。我有一个真正的问题,如果没有这个特权,命名管道 WCF 绑定在 Windows 2008 和 Windows 7 上都不起作用!这里有一个关于这个问题的有趣讨论 - http://social.msdn.microsoft.com/forums/en-US/wcf/thread/b71cfd4d-3e7f-4d76-9561-1e6070414620

有谁知道如何使这项工作?谢谢。

编辑

顺便说一句,当我运行提升的进程时,一切都很好,进程资源管理器确实按预期显示了特权:

在此处输入图片说明

但我不想把它抬高运行。

编辑2

我同样欢迎任何解决方案。无论是仅配置还是与代码混合。

编辑3

我在 MSDN 论坛上发布了同样的问题,他们将我重定向到此页面 - http://support.microsoft.com/default.aspx?scid=kb;EN-US;132958。我还没有确定它的相关性,但它看起来很有希望。

另请注意,这是他们提出的完全编码解决方案,因此无论是谁将这篇文章移至 ServerFault - 请在 StackOverflow 中将其恢复。

security windows permissions wcf named-pipes

5
推荐指数
1
解决办法
8786
查看次数

设置 IIS 以要求客户端证书并使用匿名身份验证

设置 IIS 以要求客户端证书并使用匿名身份验证

我有一个 WCF Web 服务供我们的客户使用。我想使用客户端证书来保护它。我还将使用客户端证书来识别客户。

我已经使标识部分工作,但我不能使 IIS 需要客户端证书。

如果我将 IIS 设置为接受客户端证书,则通信正常,我可以使用以下方法获取客户端身份:

ServiceSecurityContext.Current.PrimaryIdentity.Name
Run Code Online (Sandbox Code Playgroud)

但是我也可以在没有客户端证书的情况下访问该站点。我不确定那些没有阅读 WSDL 的人是否可以做任何其他事情,但我不希望任何没有受信任证书的人能够获得任何信息。

如果我将 IIS 设置为需要客户端证书,我应该有权访问的测试客户端会收到错误消息:

客户端身份验证方案“匿名”禁止 HTTP 请求。

我只想允许那些拥有服务器信任的客户端证书的人访问。其他任何人都将被拒绝。

服务器 WCF 配置:

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <behavior name="DefaultBehavior">
        <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="true" />
        <serviceCredentials>
          <clientCertificate>
            <authentication certificateValidationMode="ChainTrust" />
          </clientCertificate>
          <serviceCertificate findValue="64343ee2c8338518e78ba698f3936dc92c90db57" x509FindType="FindByThumbprint" />
        </serviceCredentials>
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <bindings>
    <wsHttpBinding>
      <binding name="DefaultBinding">
        <security mode="TransportWithMessageCredential">
          <transport clientCredentialType="Certificate" />
          <message clientCredentialType="Certificate" />
        </security>
      </binding>
    </wsHttpBinding>
  </bindings>
  <services>
    <service name="WebService.Service" behaviorConfiguration="DefaultBehavior">
      <endpoint address="" binding="wsHttpBinding" bindingConfiguration="DefaultBinding" contract="WebService.IService" />
      <endpoint …
Run Code Online (Sandbox Code Playgroud)

ssl certificate wcf iis-7.5 ssl-certificate

5
推荐指数
1
解决办法
2万
查看次数

打开时出现 Windows QUEUE MESSAGES 错误 - 无法检索消息列表。错误:访问被拒绝

问题:

在 windows server 2003 上打开 windows "QUEUE MESSAGES" 时收到错误消息

"The list of messages cannot be retrieved. Error: Access is denied"
Run Code Online (Sandbox Code Playgroud)

为什么?

按照以下步骤重新创建:

  • Windows Server 2003 标准 64 位
  • 右击我的电脑
  • 选择管理
  • 服务
  • 消息队列
  • 私人队列
  • 我的服务
  • 队列消息

显示的错误消息:

"The list of messages cannot be retrieved. Error: Access is denied."
Run Code Online (Sandbox Code Playgroud)

当前部署的设置/配置:

  • 以本地管理员身份登录。
  • 机器是独立的。
  • WCF 服务正在运行(使用 WCF 特定用户)
  • WCF 用户帐户是本地 ADMIN 组的成员。
  • 点网 4.0.
  • 正在运行Messing Queuing 服务(本地系统)
  • 可能是权限问题导致错误。

windows-server-2003 wcf msmq

4
推荐指数
1
解决办法
5381
查看次数

保持 WCF 活动,没有 IIS 回收

我有一个 WCF 应用程序。我想一直保持这个应用程序的运行。

如果有一段时间不活动,IIS 应用程序池会回收吗?

我如何让它一直保持活力?

我应该使用计时器吗?

我在应用程序中有敏感数据,填充它需要时间,这就是为什么我喜欢让它一直保持活动状态。

windows iis wcf

3
推荐指数
1
解决办法
3725
查看次数