问题标签 [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.
wcf - 在 Azure WebRole 中与 IIS(通过 Windows 激活服务)相同的端口上托管基于 TCP 的 WCF 服务
在与 IIS 相同的端口上使用基于 TCP 的 WCF 时,应如何配置 Azure Webrole?
本地解决方案通常会使用 WAS 激活,但这通常涉及设置 HTTP 端口的权限等。在 Windows Azure 中,此接口并不容易使用。
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
对我来说是没有选择的,因为我的下一步将是激活交易。而且我认为如果传输模式不起作用,那么事务模式也不起作用。
警告信息:
错误信息:
配置客户端
配置服务
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 包来解决这个重启问题的文档。
此致,
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 的身份验证机制(Windows、MembershipProvider或自定义身份验证)是否会在引发事件时被调用PostAuthenticateRequest
,或者 WCF 是否仅在将请求路由出 HTTP 管道后才对请求进行身份验证?换句话说,WCF 的身份验证机制是否在 IIS 的处理管道之外工作?
b)如果 WCF 的身份验证机制在 IIS 处理管道之外工作,那么我假设FormsAuthenticationModule不涉及对 WCF 客户端进行身份验证(假设服务正在使用表单身份验证)?
c) 另外,如果 WCF 的身份验证机制在 IIS 处理管道之外工作,那么我假设 IIS/WAS 必须配置为匿名身份验证,即使服务是使用 Windows 身份验证的客户端身份验证?
d) 如果 WCF 服务由 IIS7 托管(除了服务必须仅使用通过 HTTP 协议进行通信的端点这一事实之外),我上述问题的答案是否会有所不同?
谢谢
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 通信。我不确定我错过了什么。有什么想法吗?
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
这些都不起作用。:(
非常感谢!
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)端口?
最好的祝福
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 不参与该过程,我不明白它是如何工作的,但事实就是如此。
nhibernate - 我可以告诉 WAS 在回收后启动新的 AppPool 吗?
我有这个使用(Fluent)NHibernate 进行数据访问的管理站点。正如在别处所述,由于配置对象的创建,SessionFactory 的初始化很慢。建议的解决方案是将 Configuration 对象序列化到磁盘,然后重用它,直到实体程序集或流利的初始化程序集发生更改。
从理论上讲,这些听起来非常优雅和吸引人。在实践中,即使使用 1 实体模型,反序列化配置也需要大约 500 毫秒,而创建 SessionFactory 又需要 500 毫秒。(这与没有序列化的启动时间相当,但我怀疑一旦我将更多实体放在那里,收益就会很明显。)
在 IIS 回收我的应用程序池后,它不会再次启动它,直到有新请求进来。因此,使用 IIS 的默认回收管理(每 29 小时),以及管理员每天登录我的管理站点一次的可能场景,几乎每次该管理员登录时都会发生 1 秒的延迟,给人的印象是网站启动缓慢。
所以,我想知道是否有任何方法可以告诉 IIS/WAS 实际启动替换应用程序池作为回收的一部分,而不是等到下一个请求进来?我意识到这违背了 WAS 试图在任何给定时间保持尽可能少的并发应用程序池运行的想法,但它会解决我的问题(因为我假设我的 ServiceHostFactory+ServiceHost 将在应用程序池启动后立即创建)。
wcf - 没有 IIS 的主机 WAS 托管
我使用的是获得 IIS 5 的 Windows XP,在数据库操作期间我遇到了一些身份验证问题。我尝试过假装,但它对我不起作用。
我可以在 XP 机器上托管没有 IIS(5) 的 WCF 服务吗?请确认。