问题标签 [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 投票
2 回答
1534 浏览

wcf - 我可以在 IIS7 站点的根“/”应用程序中使用 NetMsmqBinding 托管 WCF 服务吗?

我使用 NetMsmqBinding 创建了一个 WCF 服务,并使用 Windows 激活服务 (WAS) 在 IIS7 中托管它。

当前(完美运行):

托管在 IIS 中:http://localhost/MyService/MyService.svc

使用服务端点地址:http://localhost/private/MyService/MyService.svc

以及对应的队列:.\private$\MyService/MyService.svc

期望(什么都不做,甚至没有错误消息):

托管在 IIS 中:http://localhost/MyService.svc

使用服务端点地址:http://localhost/private/MyService.svc

以及对应的队列:.\private$\MyService.svc

当我使用 MyService IIS 应用程序时,一切正常。但是当我尝试使用根“/”应用程序而不是“MyService”应用程序来托管服务时,相同的设置(代码、IIS 安全性、队列安全性等)没有任何作用。我在事件日志中没有收到任何错误。传入的消息只是坐在队列中。

IIS7 站点的根应用程序是否支持托管 WAS 激活的服务?

0 投票
1 回答
101 浏览

wcf - WAS 托管队列

我读到在托管队列端点时,所有这些名称都需要匹配:

所以我想知道,您如何将具有多个端点的服务托管到不同的队列?例如,正在侦听两个队列的服务……(使用两个端点)。

0 投票
1 回答
189 浏览

wcf - 在 WAS 下托管多个端点

是否可以在 WAS 下托管具有多个绑定端点的服务。例如具有两个 TCP 端点和两个消息队列端点的服务?

那可能吗?

0 投票
2 回答
1244 浏览

wcf - Windows 激活服务 + WCF 是 COM+ 的替代品吗

WAS 功能

  • 应用程序池
  • 回收
  • 空闲时间管理
  • 身份管理
  • 隔离

听起来很像 COM+,但托管在 IIS 7 中。有人在使用这项技术吗?我比较两者是否正确?

0 投票
7 回答
5592 浏览

c++ - WcfSvcHost 和 IIS WCF 主机遇到 BadImageFormatException

引用 x86 DLL 时,在 Vista x64 上的 Visual Studio 2008 中创建 WCF 服务库很麻烦。调用 32 位 DLL 的服务需要具有 x86 平台目标才能在 64 位操作系统上运行。执行此操作时,当您尝试调试服务时,WcfSvcHost 会引发 BadImageFormatException。有一个关于 MS 连接的错误报告。我使用的解决方法是将WcfSvcHost 核心标记为 32-bit

明显问题

我遇到的主要问题是这个第三方本机 32 位 DLL 无法使用某些 WCF 主机加载。调用使用第三方 DLL的服务操作时,我收到以下错误:

System.TypeInitializationException:“”的类型初始化程序引发了异常。

.ModuleLoadExceptionHandlerException:在导致 C++ 模块加载失败的主要异常之后发生了嵌套异常。

System.BadImageFormatException:该模块应包含程序集清单。(来自 HRESULT 的异常:0x80131018)

嵌套异常:

句柄无效。(来自 HRESULT 的异常:0x80070006 (E_HANDLE))

当 WcfSvcHost 启动时不会引发此异常,它会在调用引用 32 位 DLL 的服务操作时引发。非常有趣的是,在控制台应用程序上使用相同的 app.config 托管相同的服务没有例外,并且运行良好:

此异常发生在以下情况之后:

“WcfSvcHost.exe”(托管):已加载“C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.3053_none_d08d7bba442a9b36\msvcm80.dll”

同样,控制台应用程序没有异常并加载相同的 DLL:

“ConsoleApp.vshost.exe”(托管):已加载“C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.3053_none_d08d7bba442a9b36\msvcm80.dll”

请参阅Microsoft 产品支持的回答

更新 #1:控制台应用程序和 WcfSvcHost.exe 主机进程都在同一会话和登录用户(我)下运行。我已将 WcfSvcHost.exe 复制到服务目录,手动启动并遇到相同的结果。我还检查了 Windows 事件日志以获取更多信息并使用sxstrace,但没​​有记录任何内容。

运行 Process Explorer,我已经验证了两个进程之间的以下内容相同:

  • 图像:32 位
  • 当前目录
  • 用户/SID
  • 会议
  • 安全性(组被拒绝,特权被禁用)

运行 Process Monitor 并配置符号,我看到 WcfSvcHost 查找以下注册表和文件,而控制台主机没有。Process Monitor 记录了很多数据,我不确定我在寻找什么:(

HKLM \ Software \ Microsoft \ Fusion \ PublisherPolicy \ Default \ Policy.8.0.MSVCM80_B03F5F7F11D50A3A C:\ Windows \ assembly \ Gac_32 \ MSVCM80 \ 8.0.50727.3053_CM:\ Windows \ alifting \ Gac_MSIL \ MSVCM80 \ 8.0.50727.3053_B03F5F7.3053_B03F5F7F11D50A3A C:\ Windows\程序集\GAC\msvcm80\8.0.50727.3053__b03f5f7f11d50a3a

更新 #2:当服务托管在IIS 6/Windows Server 2003 上的生产环境中时,也会发生同样的异常。

更新 #3:第 3 方 32 位 .NET 程序集是StreamBase API

  • sbclient.dll(托管)
  • monitor.netmodule(托管)
  • dotnetapi.dll(非托管)
  • pthreads-vc8.dll(非托管)

更新 #4:添加清单但未成功:

  1. 验证 dotnetapi.dll 和 pthreads-vc8.dll 有 RT_MANIFEST。sbclient.dll .NET 程序集没有清单
  2. 从 GAC 中删除 sbclient.dll
  3. 注册 sbclient.dll 以跳过验证
  4. 通过mt.exe将清单添加到 sbclient.dll 和 monitor.netmodule
  5. 添加了经过验证的清单,并且在测试期间加载了预期的文件(通过 Visual Studio - 调试模块窗口)
  6. 在 BackgroundWorker.OnDoWork() 下会抛出相同的 BadImageFormatException,调用堆栈显示对 dotnetapi.dll...DefaultDomain.Initalize() 的调用。

我已经验证 msvcm80.dll 没有清单,我相信这是加载的唯一没有清单的文件:)

有趣的发现

当我在Reflector加载 monitor.netmodule 时,它​​说:

“monitor.netmodule”不包含程序集清单。

即使它显示错误,Reflector 仍然能够反汇编托管代码。

0 投票
3 回答
14885 浏览

.net - WAS 通过 net.tcp 绑定托管 WCF 服务

我正在尝试在一组计算机上发布一个计算服务,这些计算机将由应用程序服务器使用。计算服务器是有状态的,需要能够执行异步回调,所以我想通过 TCP 使用每个会话设置。

服务应用程序是使用 VS2008 中的 WCF 服务应用程序项目类型构建的。

碰巧计算服务机器正在运行 Vista,所以根据我读过的文档,我应该能够使用 WAS 托管。我正在尝试遵循 Microsoft 关于该主题的说明:

安装和配置 WCF 组件

在 WAS 中托管 WCF 服务

但是我很早就遇到了麻烦。我应该将 .svc 文件放在我的应用程序的虚拟目录中。但是由于我没有使用 IIS 托管,如何创建虚拟目录?上面的文档对此并不清楚。

此外,当尝试运行允许 net.tcp 访问我的应用程序的命令时:

我不知道用什么来代替<WCF Application>。同样,似乎缺少一个以“类似 IIS 托管”的方式发布服务的先前步骤。

我创建了一个尝试使用该服务的测试应用程序。当我单击“添加服务引用”时,它会发现我的服务,但无法使用 net.tcp 连接到它。

这里有没有人成功地托管和使用了一项服务?你对我有什么指示吗?

更新:我现在尝试使用 IIS 管理器将 net.tcp 绑定添加到网站(右键单击 -> 编辑绑定...),但“添加...”对话框中唯一可用的协议是 http 和 https。该列表中没有 net.tcp。是的,我已经安装了非 http 激活组件……很奇怪。

0 投票
1 回答
454 浏览

wcf - 在 WAS 中托管 wcf 服务

我编写了我的 WCF 服务,我需要在我的 vista 机器的 Windows 激活服务 (WAS) 中托管它。

请告诉如何在 WAS 中托管我的服务..

还有如何使用这个客户端应用程序

0 投票
1 回答
5857 浏览

wcf - 如何在 Windows Vista 上使用 netNamedPipeBinding 和 WAS 在 Web 应用程序中托管 WCF 服务

我正在尝试在 Vista 机器上的 Web 应用程序中使用 netNamedPipeBinding 托管 WCF 服务。

我启用了本文所述的非 HTTP 服务激活:http: //msdn.microsoft.com/en-us/library/ms731053.aspx

我将服务配置如下:

当我浏览到 .svc 文件(在 IIS 上,而不是 Visual Studio 网络服务器上)时,我收到以下消息:

我希望使用 WAS 进行更快、更轻松的部署,但是这个例外没有帮助。有没有人知道我做错了什么?

0 投票
3 回答
24276 浏览

wcf - 在两个 tcp 端口上使用 net.tcp 绑定在 IIS 7 (WAS) 中托管 WCF 服务

默认情况下,IIS 7 网站有 net.tcp 与“808: ”绑定信息字符串的绑定。如果我添加另一个带有“xxx: ”的 net.tcp 绑定,则会发生异常:

此集合已经包含一个带有方案 net.tcp 的地址。此集合中的每个方案最多可以有一个地址。参数名称:项目

我该如何解决这个问题并在两个端口监听我的服务?

0 投票
2 回答
926 浏览

wcf - Host WCF in WAS or IIS7?

We have a server application that has one module installed on a separate server, and want to use WCF for the two modules to communicate with each other. I've narrowed it down to hosting the WCF either in IIS7/WAS or in WAS without IIS. The main purpose of the primary application is actually to serve as a tcp/ip sockets based server that processes some data that comes in. Would IIS7 or WAS be best for this type of project?

If we did go with WAS, would it makes sense to build a console app to host in WAS?