问题标签 [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 回答
336 浏览

c# - 如何在 Windows XP 中配置 Windows 激活服务器 (WAS) 以托管 WCF 服务?

如何在 Windows XP 中配置 Windows 激活服务器 (WAS) 以托管 WCF 服务?

0 投票
1 回答
636 浏览

wcf - 删除 net.tcp 中的 .svc 扩展名

我正在尝试在 WAS 和 IIS 中为 http 和 net.tcp 托管我的 WCF 4 Web 服务。是否可以删除 net.tcp 绑定的 .svc 扩展名?

如果我执行以下操作,我会收到错误

在 net.tcp://myserver.com/service/TestService 上没有可以接受消息的端点监听。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。

0 投票
2 回答
171 浏览

wcf - 如何告诉轮询 MSMQ 的 WAS 服务在忙时等待?

我正在开发一个系统,其中包括运行工资单、繁重的负载过程。很可能很快就会有如此多的请求在高峰时间运行工资单,以至于批处理服务器将不堪重负。

我希望通过使用 MSMQ 来组合一个概念证明来解决这个问题(以后可能会用像 nservicebus 这样的商业解决方案来代替它)。我以这个例子为基础。我可以看到如何设置绑定并将其粘在一起,但我仍然需要一种方法来告诉 WAS 托管的订阅者只在他们不忙时处理“运行繁重的工资核算流程”消息。否则队列中的消息将被立即提取,我们会遇到与以前相同的问题。

我可以将订阅服务设置为说“我很忙,我无法接收消息,将其留在队列中”吗?队列需要是事务性的吗?

0 投票
1 回答
512 浏览

wcf - 尝试从远程专用队列中提取时,远程计算机不可用

我有一个远程私人队列,我可以毫无问题地写入。我正在尝试创建一个 WAS 托管的 WCF 服务来提取数据进行处理。我需要服务在与队列不同的机器上;我目前将它与写作服务放在同一个站点 - 相同的应用程序池但不同的应用程序。

我的目标队列被调用PersistenceService/Log.svc并且是事务性的和经过身份验证的。我的服务正在运行http://appdev.me.com/PersistenceService/Log.svc。以下包含我的端点和绑定:

我得到的错误如下:

我通过关闭 McAfee 为通信扫清了道路,因此它不会阻塞流量。我已暂时授予对队列的匿名登录访问权限 - 尽管它应该作为我正在写入队列的同一用户进入,并且该用户对队列具有完全权限。

WCF 跟踪不会显示除此错误之外的任何内容。任何关于在哪里看的想法将不胜感激。

0 投票
1 回答
1820 浏览

asp.net - wcf nettcpbinding 一个现有的连接被远程主机强行关闭

开发环境:

服务托管在 IIS/WAS 下

我在本地开发中开发了四项服务。当我从 asp.net 应用程序访问它们时,它们都工作正常。我正在使用 net.tcp 协议进行连接。我已将 net.tcp 指定为站点级别和虚拟目录级别的允许协议。与 tcp 相关的三个服务全部启动。

在我能够连接到服务的应用程序 web.config 中,我正在使用模拟

但是当我尝试通过在 wcftestclient 的添加服务项目中指定 net.tcp url 来连接服务时。我无法连接。对另外两个服务使用相同的配置,我可以连接到另外两个服务。

测试服务器: 我什至部署在测试服务器上。即使在那里我也面临同样的问题。我可以使用 net.tcp url 连接到相同的两个服务。但其他两个给出错误。下面列出了其中一个配置。在服务器上,我什至删除了允许用户部分以使其对所有用户运行。

我得到的错误如下。

错误:无法从 net.tcp://localhost/servicesdev/SalesPersonService.svc 获取元数据 如果这是您有权访问的 Windows (R) Communication Foundation 服务,请检查您是否已在指定地址启用元数据发布。有关启用元数据发布的帮助,请参阅位于http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata的 MSDN 文档Exchange 错误 URI:net.tcp://localhost/servicesdev/SalesPersonService.svc 元数据包含无法解析的引用:“net.tcp://localhost/servicesdev/SalesPersonService.svc”。套接字连接被中止。这可能是由于处理您的消息时出错或远程主机超出接收超时,或者是潜在的网络资源问题造成的。本地套接字超时为“00:05:00”。现有连接被远程主机强行关闭

以下是配置部分。

谢谢, BMP

0 投票
1 回答
1126 浏览

windows-server-2012 - IIS 8 在 Windows Server 2012 上损坏

我们在 Windows Server 2012 上配置了 IIS 8。每当我们尝试访问任何虚拟目录时,应用程序池都会停止。

我尝试了 iisreset 和所有其他选项。当我检查 Windows 服务时,我看到 WAS 和 W3SVC 服务已停止。

尝试启动服务 (WAS) 时会引发错误 在此处输入图像描述

我什至尝试重新安装 IIS,重新启动机器几次但没有运气。

补充一点,我已经安装了所有最新的 Windows 更新。

有没有人遇到过这个问题?任何解决方法?

我什至尝试使用此链接重新配置 IIS

0 投票
1 回答
8468 浏览

windows - 如何下载 Windows 进程激活服务 (WAS)

当我尝试在 IIS7 中启动应用程序池时出现错误。

该错误称为“在计算机上找不到服务 WAS。”。

然后我用谷歌搜索“下载 Windows 进程激活服务 (WAS),但我似乎找不到下载它。

我在我的 Windows 7 操作系统的远程桌面上的 AWS 上运行它。

0 投票
1 回答
1355 浏览

wcf - 服务 (.svc) 位于根目录的 MSMQ 的 WCF 激活

VS 2012/.NET4.5、Windows 8/IIS8 和 64 位

使用 WCF 服务应用程序,到目前为止我在命名我的 MSMQ 队列以匹配服务名称时看到的所有文档都假定我正在使用 IIS 网站下的应用程序或虚拟目录。

这是从 MSDN http://msdn.microsoft.com/en-us/library/ms789042.aspx引用的

被激活的应用程序必须匹配(最长匹配)队列名称的前缀。

例如,队列名称为:msmqWebHost/orderProcessing/service.svc。如果应用程序 1 有一个虚拟目录 /msmqWebHost/orderProcessing,下面有一个 service.svc,而应用程序 2 有一个虚拟目录 /msmqWebHost,下面有一个 orderProcessing.svc,则应用程序 1 被激活。如果删除应用程序 1,将激活应用程序 2。

此外,http://blogs.msdn.com/b/tomholl/archive/2008/07/12/msmq-wcf-and-iis-getting-them-to-play-nice-part-1.aspx

但是,当您在 IIS 7 WAS 中托管启用 MSMQ 的服务时,队列名称必须与服务的 .svc 文件的 URI 匹配。在此示例中,我们将在名为 MsmqService 的应用程序中托管服务,并使用名为 MsmqService.svc 的 .svc 文件,因此队列必须名为 MsmqService/MsmqService.svc。用于 WCF 服务的队列应始终是私有的

而且, http: //msdn.microsoft.com/en-us/magazine/cc163357.aspx

请务必注意,只有当队列与 .svc 文件具有相同的名称(减去计算机名称)时,MSMQ 端点的激活才能正常工作。这意味着如果您的服务端点是 /server/app/service.svc,则队列名称必须是 app/service.svc。

MyService.svc 文件直接位于我的 IIS 网站的根目录下(在集成模式下使用 .NET 4 池),因此我执行了以下操作:

  1. 创建一个名为 MyService.svc 的私有事务队列并赋予网络服务完全控制权(用于测试)。
  2. 设置我的 web.config 端点:address="net.msmq://localhost/private/MyService.svc"
  3. 我能够使用客户端测试应用程序使用 (2) 中的地址将消息推送到队列。
  4. 我通过执行以下操作向网站添加了 MSMQ 协议支持:( C:\Windows\System32\inetsrv>appcmd set site "MyWebsite" /+bindings.[protocol='net.msmq',bindingInformation='localhost']并检查它是否正确添加了支持)
  5. 从我的网站高级设置中,我http,net.tcp,net.msmqEnabled Protocols
  6. 我仔细检查了“Net.Msmq 侦听器适配器”是否正在运行,它负责在消息到达时激活服务,然后我重新启动了它。
  7. 我的web.config

新消息到达队列并且消息保留在队列中时,我的服务没有被激活。那是因为我没有使用应用程序或虚拟目录,还是我遗漏了什么?

0 投票
0 回答
335 浏览

c# - 通过 WAS 激活 UDP - 问题

我参考了示例http://msdn.microsoft.com/en-us/library/aa717041(v=vs.110).aspx

编译并执行列出的步骤后,我使用“以管理员身份运行”启动激活器。后来我触发客户端调用,它到达服务器,我在事件查看器中收到以下错误。

尝试读取和实例化配置的 ProcessHandlerType 时出错。

异常:System.ArgumentException

消息:未知协议 ID 'net.udp'。

StackTrace:在 System.Web.Hosting.ProcessHost.StartProcessProtocolListenerChannel(字符串 protocolId,IListenerChannelCallback listenerChannelCallback)

就在此消息之前(我由 udp 激活器开始的最后一步..),事件查看器通过以下消息记录开始

侦听器适配器协议“net.udp”已成功连接到 Windows 进程激活服务。

我已经检查了以下内容。

  1. 基于普通 UDP 示例控制台 exe 的 UDP 测试在同一环境中工作正常(因此没有防火墙 ....etc)

  2. 我确保默认网站在 Bindings 中有所有协议,并启用了协议“http,net.udp”

  3. 环境 (win8EE) 具有直到 v4.5 的框架,但默认应用程序池使用配置的 v4.0

  4. 所有项目都是为 4.0 编译的,并且支持的运行时被正确提到为 v4.0(也是 sku)

让我知道我需要检查其他任何内容。

更新:

进一步检查后,错误消息与权限有关(我没有更改应用程序池权限,但在上述过程中配置的身份是当前登录用户,存储在 appHost 配置文件中,当前登录用户也是其中的一部分管理员组)我猜,

消息 1:

服务应用程序池“DefaultAppPool”的工作进程“6300”中协议“net.udp”的侦听器通道报告了侦听器通道故障。数据字段包含错误号。

消息 2:(这是最后一条消息)来源“用户配置文件服务”

Windows 检测到您的注册表文件仍在被其他应用程序或服务使用。现在将卸载该文件。保存您的注册表文件的应用程序或服务之后可能无法正常运行。

详细信息 - 从 \Registry\User\S-1-5-82-3006700770-424185619-1745488364-794895919-4004696415 泄露的 4 个用户注册表句柄:进程 6300 (\Device\HarddiskVolume1\Windows\SysWOW64\inetsrv\w3wp.exe)打开密钥 \REGISTRY\USER\S-1-5-82-3006700770-424185619-1745488364-794895919-4004696415 进程 6300 (\Device\HarddiskVolume1\Windows\SysWOW64\inetsrv\w3wp.exe) 已打开密钥 \REGISTRY\USER\ S-1-5-82-3006700770-424185619-1745488364-794895919-4004696415\Control Panel\International Process 6300 (\Device\HarddiskVolume1\Windows\SysWOW64\inetsrv\w3wp.exe) 已打开密钥 \REGISTRY\USER\S- 1-5-82-3006700770-424185619-1745488364-794895919-4004696415\Software\Microsoft\Windows NT\CurrentVersion 进程 6300 (\Device\HarddiskVolume1\Windows\SysWOW64\inetsrv\w3wp.exe) 已打开密钥 \REGISTRY\USER\S-1-5-82-3006700770-424185619-1745488364-794895919-4004696415\Software\Microsoft.NETFramework

两条消息都指向同一个进程,即 6300。

0 投票
1 回答
364 浏览

wcf - WCF 与 Windows 服务:在 MSMQ 中使用节流处理多个队列的推荐方法是什么?

我们有一个需求,需要实现排队,这样我们就可以控制并发而不会使数据库过载。在 Microsoft 世界中,我们选择使用 MSMQ 来存储请求。计划创建 100 个队列(每个客户 1 个)并并行处理队列以实现最大并发。

我们的主要设计目标是一次只允许每个客户/队列一次呼叫,并独立处理每个客户。

我们坚持选择正确的技术来处理队列。那里有两个。

  1. 创建一个 .NET windows 服务并使用队列对象事件ReceiveCompleted处理多个队列。在这里,我们可以选择将相同的方法附加到多个队列。需要使用一些同步锁为单个队列添加自定义并发代码。参考文献1

  2. 使用 WAS 拥有多个 WCF 服务来处理每个队列(不同队列的相同副本;仅更改队列名称)并实施节流以限制每个服务的并发性。看起来 WCF 服务只能处理一个队列。 参考文献2

你会建议哪一个?有没有更好的办法?请帮助我们!!!