问题标签 [was]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1135 浏览

wcf - 在 Azure WebRole 中与 IIS(通过 Windows 激活服务)相同的端口上托管基于 TCP 的 WCF 服务

在与 IIS 相同的端口上使用基于 TCP 的 WCF 时,应如何配置 Azure Webrole?

本地解决方案通常会使用 WAS 激活,但这通常涉及设置 HTTP 端口的权限等。在 Windows Azure 中,此接口并不容易使用。

0 投票
0 回答
945 浏览

wcf - 带有 WAS 的 WCF 服务:服务无法转换队列的路径名

我得到了一个 WCF 服务,它通过位于同一域内不同服务器上的 MSMQ 上的 WAS 进行侦听。

设置如下所示:

服务器 A:Windows Server 2008 在 IIS 上托管 WCF 服务。

服务器 B:Windows Server 2008(域控制器)托管私有 MSMQ(AD 集成)。

此外,我还在服务器 A 上运行了一个控制台客户端,它也使用 WCF 通过 MSMQ 向服务发送消息。目前,整个设置工作正常,服务处理来自客户端的消息。客户端的安全模式设置为transport,服务的安全模式设置为none

但是,当我将服务的安全模式也切换到transport不再处理消息时。我在服务上激活了跟踪,发现当服务尝试访问另一台服务器上的 MSMQ 时似乎有问题。none在两种安全模式和中都可以看到警告和错误消息(见下文)transport,但是当设置为none服务时,似乎会忽略问题并处理消息。

错误消息说:

将 'murdock.ltportale.intern\private$\EventSyncService/EventSynchorinzationService.svc' 队列路径名称转换为格式名称时出错:无法识别的错误 -1072824300 (0xc00e0014)。排队通道上的所有操作均失败。确保队列地址有效。MSMQ 必须在启用 Active Directory 集成的情况下安装并且可以访问它。

我不认为 MSMQ 的地址是错误的,因为服务可以使用安全模式找到它none。我也很确定 MSMQ 与 AD 集成一起运行,因为我花了 2 天时间才让它在我的环境中运行。

目前我不知道我做错了什么。在没有安全模式的情况下运行设置transport对我来说是没有选择的,因为我的下一步将是激活交易。而且我认为如果传输模式不起作用,那么事务模式也不起作用。


警告信息:

错误信息:

配置客户端

配置服务

0 投票
1 回答
1708 浏览

wcf - 确保(重新启动)托管在 IIS7.5 WAS 上的 MSMQ WCF 服务

一个多月以来,我们一直在纠结一个问题,即托管在 IIS7.5 (WAS) 中的 wcf msmq 服务将停止处理来自队列的消息。

我们无法将其范围缩小到“在某些时候”它将停止处理来自队列的消息。通过 http 浏览器调用调用 svc 将再次开始处理。

在阅读了很多关于这个问题的文章、博客和论坛帖子之后,我们确保了以下几点:安全设置、协议绑定和 msmq/服务命名,但遗憾的是:服务仍将停止处理消息(在某​​些时候)。

在这篇文章http://www.daczkowski.net/2010/11/19/leveraging-msmq-in-asp-net-application-through-wcf-service/的鼓励下,我们现在似乎终于(几乎)消除了这个问题对于 windows server 2008 r2 sp1 64 位,但它似乎仍然出现在 Windows 7 32 位上。

现在来回答我的问题:谁能告诉我是否确实存在一个保证(有关这方面的文档将不胜感激),msmq WAS 托管的 wcf 服务将在不运行 AppFabric 扩展的 IIS7.5 上实际重新启动(在所有条件下) ?

我知道这个问题非常复杂,但我很难获得关于为什么我们应该使用 AppFabric 扩展 OTS 包来解决这个重启问题的文档。

此致,

0 投票
2 回答
425 浏览

wcf - 对 WAS 托管的 WCF 服务的请求是否由 IIS 处理管道或...进行身份验证?

以下问题假设我们在 WAS 中与 Asp.Net 并排托管 WCF 服务:

“当与 Asp.Net 并排托管 WCF 时 - WCF 托管基础结构会在引发 PostAuthenticateRequest 事件时拦截 WCF 请求,并且不会将处理返回给 ASP.NET HTTP 管道。编码为在后期阶段拦截请求的模块管道不拦截 WCF 请求。”

“通过并行配置,WCF 托管基础结构拦截 WCF 消息并将它们路由到 HTTP 管道之外”

a) 假设 WAS 收到对 WCF 服务的请求,WCF 的身份验证机制(WindowsMembershipProvider自定义身份验证)是否会在引发事件时被调用PostAuthenticateRequest,或者 WCF 是否仅在将请求路由出 HTTP 管道后才对请求进行身份验证?换句话说,WCF 的身份验证机制是否在 IIS 的处理管道之外工作?

b)如果 WCF 的身份验证机制在 IIS 处理管道之外工作,那么我假设FormsAuthenticationModule不涉及对 WCF 客户端进行身份验证(假设服务正在使用表单身份验证)?

c) 另外,如果 WCF 的身份验证机制在 IIS 处理管道之外工作,那么我假设 IIS/WAS 必须配置为匿名身份验证,即使服务是使用 Windows 身份验证的客户端身份验证?

d) 如果 WCF 服务由 IIS7 托管(除了服务必须仅使用通过 HTTP 协议进行通信的端点这一事实之外),我上述问题的答案是否会有所不同?

谢谢

0 投票
3 回答
5383 浏览

c# - 使用 net.tcp 绑定在 IIS 7 上托管 WCF 服务 - 使用服务时出错

我正在尝试在 IIS 7 / Win 7 中托管具有 Net TCP 绑定的 WCF 服务。该服务是托管的,我可以在我的客户端应用程序中添加对它的引用。

这是服务配置文件:

这是我添加参考时在客户端生成的配置:

问题出在运行时,我收到以下错误:-

无法连接到 net.tcp://localhost:10000/AppServer.ApplicationProcess.svc。连接尝试持续了 00:00:02.0582058 的时间跨度。TCP错误代码10061:由于目标机器主动拒绝,无法建立连接。

我已按照http://www.singingeels.com/Articles/Duplex_WCF_Services_Hosted_in_IIS_Using_NetTcp.aspx中描述的步骤进行操作

并在我的防火墙中创建了一个入站规则,允许在端口 10000 上进行 TCP 通信。我不确定我错过了什么。有什么想法吗?

0 投票
1 回答
1390 浏览

wcf - 将 net.tcp WCF 服务从 localhost 移动到新站点上的 IP 地址,服务不会加载

我有一个运行 2 个 WCF 服务的网站。工作很棒,直到我需要将它们从 IIS7 中的“默认网站”移动到具有新 IP 地址的专用网站。现在我收到错误消息:

“...无法加载,因为找到了该合约的多个端点配置。请按名称指明首选端点配置部分”

我所做的只是改变:

net.tcp://localhost/...

至:

net.tcp://10.1.2.204/...

我已经将配置中曾经使用 localhost 的每个位置更改为指定的 IP 地址。新网站的设置与正确的 net.tcp 绑定完全相同,并且绑定到单个 IP 地址 10.1.2.204。

我似乎无法弄清楚发生了什么。我正在查看 svc 跟踪日志,我得到的只是一堆相同的。

我的新网站被称为“核心”,而之前我在“默认网站”上托管。我添加了一个新的 FQDN/公共 IP 来路由到这个新站点(反向到提到的私有 IP 地址)。现在我的服务被破坏了。

我知道使用 IIS/WAS 托管时会忽略 baseAddress,所以我不确定还要检查什么。我在配置中完全没有改变任何其他内容。

我还能提供什么来帮助解决此问题?

--

我也在服务跟踪查看器中看到了这一点:

活动名称在连接上接收字节'Listen at 'net.tcp://hole.myserver.com/...'.'。

...但是 WCF 服务实际上托管在那个新的“核心”网站上,该网站转换为我的新私有 IP 地址。我已更改示例的 FQDN 名称。说清楚:

我曾经使用默认网站在此服务器上拥有 1 个 FQDN。

我现在向该服务器、新网站、第二个 IP 添加了第二个 FQDN。在我看来,监听应该指向:net.tcp://core.myserver.com 而不是 net.tcp://hole.myserver.com。假设服务器名称是hole.myserver.com,而我的新网站是core.myserver.com,位于同一台服务器上。

希望这不会令人困惑,您可以理解它。

我正在使用 808 的默认 net.tcp 端口和 808 的绑定:*

--

这是我可以告诉的第一个异常:

套接字连接被中止。这可能是由于处理您的消息时出错或远程主机超出接收超时,或者是潜在的网络资源问题造成的。本地套接字超时为“00:00:10”。

--

这些组合都不会激活服务并且都会产生相同的异常:

net.tcp://localhost net.tcp://localhost:808 net.tcp://10.1.2.204 net.tcp://10.1.2.204:808

即使使用我以前做过的不同端口也没有问题:

net.tcp://localhost:75 net.tcp://10.1.2.204:75

这些都不起作用。:(

非常感谢!

0 投票
1 回答
1479 浏览

wcf - WCF、WAS、IIS 和端口

你好,

我已经与 WCF 合作了一段时间,但有些事情我不清楚。

在 IIS 中托管 WCF 服务时,标准协议将为 http,默认端口为 80。如果需要,可以更改此 portnr。

然后它也可以使用 TCP 协议(​​WAS)在 IIS 中托管 WCF 服务。然而,WCF 服务仍将在 http 协议的端口 80 上发布其 mex,但我如何查看 WCF TCP 通信的端口 nr?

我假设我必须首先打开 mex 的端口 nr(通常是端口 80),然后还要打开 WAS(IIS 中的 WCF TCP)端口?

最好的祝福

0 投票
2 回答
1561 浏览

asp.net - 类似于 ASP.NET 的 WCF 健康监控

ASP.NET 有一个很好的特性,叫做健康监控。一旦在system.web/healthMonitoring章节中定义,我们就会得到非常有用的 Web 事件来记录/分析。对于不使用 ASP.NET 兼容模式并托管在 IIS7/WAS 下的 WCF 服务,是否有任何类似的方法?

更新:我发现在 WCF 服务的 web.config 中启用 system.web/healthMonitoring 可以获取一些 Web 事件:System.Web.HttpRuntime, 1002, “应用程序正在关闭。原因:配置已更改。” . 没有心跳和其他。如果 ASP.NET 不参与该过程,我不明白它是如何工作的,但事实就是如此。

0 投票
1 回答
299 浏览

nhibernate - 我可以告诉 WAS 在回收后启动新的 AppPool 吗?

我有这个使用(Fluent)NHibernate 进行数据访问的管理站点。正如在别处所述,由于配置对象的创建,SessionFactory 的初始化很慢。建议的解决方案是将 Configuration 对象序列化到磁盘,然后重用它,直到实体程序集或流利的初始化程序集发生更改。

从理论上讲,这些听起来非常优雅和吸引人。在实践中,即使使用 1 实体模型,反序列化配置也需要大约 500 毫秒,而创建 SessionFactory 又需要 500 毫秒。(这与没有序列化的启动时间相当,但我怀疑一旦我将更多实体放在那里,收益就会很明显。)

在 IIS 回收我的应用程序池后,它不会再次启动它,直到有新请求进来。因此,使用 IIS 的默认回收管理(每 29 小时),以及管理员每天登录我的管理站点一次的可能场景,几乎每次该管理员登录时都会发生 1 秒的延迟,给人的印象是网站启动缓慢。

所以,我想知道是否有任何方法可以告诉 IIS/WAS 实际启动替换应用程序池作为回收的一部分,而不是等到下一个请求进来?我意识到这违背了 WAS 试图在任何给定时间保持尽可能少的并发应用程序池运行的想法,但它会解决我的问题(因为我假设我的 ServiceHostFactory+ServiceHost 将在应用程序池启动后立即创建)。

0 投票
3 回答
266 浏览

wcf - 没有 IIS 的主机 WAS 托管

我使用的是获得 IIS 5 的 Windows XP,在数据库操作期间我遇到了一些身份验证问题。我尝试过假装,但它对我不起作用。

我可以在 XP 机器上托管没有 IIS(5) 的 WCF 服务吗?请确认。