问题标签 [servicehost]

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 投票
3 回答
1823 浏览

c# - 如何在同一个套接字上托管 WCF 服务和 TCP 服务器?

今天我使用 ServiceHost 自托管 WCF 服务。

我想在我的 WCF 服务附近托管我自己的 TCP 程序以进行直接套接字操作(例如留置某种广播 TCP 流)

我需要控制 URL 命名空间(这样我就可以让我的客户使用一些不错的 URL,例如 example.com:port/myserver/stream?id=1 或 example.com:port/myserver 将 TCP 流直接发送到我的服务中) /stream?id=anything ,这样我就不会被 1 个客户端用于 1 个套接字的想法所困扰,我真的想将我的 WCF 服务保持在与我自己的服务器相同的端口上,或者它是什么能够调用 www.example.com:port/myWCF/stream?id=222... 我希望它可以在任何端口上工作 - 不仅是 80)

任何机构都可以帮我解决这个问题吗?

我现在只使用 WCF。而且我不喜欢它是如何工作的。这就是为什么我要开始迁移以清除 TCP=) 的众多原因之一

我不能使用 net-tcp 绑定或任何其他很酷的 WS-* 绑定(今天我使用最简单的绑定,以便我的客户(如 Flash、AJAX 等)轻松连接到我)。

我需要快速轻松地实现连接协议,就像我创建的用于实时大量数据传输的套接字一样。

所以..有什么想法吗?请 - 我需要帮助。

0 投票
3 回答
557 浏览

c# - 这是托管 WCF 服务的正确方法吗?

对于一些测试代码,我希望能够在几行中托管 WCF 服务。我想我会写一个简单的托管类:

可以这样使用:

这种方法有什么问题吗?代码中是否存在缺陷(尤其是关于处置)?

0 投票
1 回答
3823 浏览

wcf - 自托管 WCF ServiceHost/WebServiceHost 并发/性能设计选项 (.NET 3.5)

因此,我将通过自托管(在 WindowsService 中)WebServiceHost 提供一些功能(不确定如何使用 ServiceHost 处理 HTTP GET/POST),其中一个可能会在很多时候被调用。此函数还将依赖于 appdomain 中的连接(由 WindowsService 托管,因此它可以在多个请求中保持活动状态)。

我有以下顾虑,非常感谢任何输入/想法/评论:

  • 并发访问——WebServiceHost 如何处理一堆并发请求。它们是按顺序排队和处理,还是自动创建合同的新实例?
  • WebServiceHost -> WindowsService 通信- 我需要从 WebServiceHost 到托管 WindowsService 的某种形式的通信,例如在不存在会话时请求新会话。也许实现一个类,该类使用 WindowsService 订阅的事件扩展 WebServiceHost...(除非有另一种方法可以在发出请求时在 WindowsService 中触发事件...)
  • 多个 WebServiceHost 或合同- 在不同的线程中运行多个 WebServiceHost 实例是否会带来任何真正的性能提升(可能每个端点一个?) - 更好地理解第一点可能会有所帮助。
  • WSDL - 我不知道为什么(可能只是需要做更多的阅读),但我不知道如何让 WebServiceHost 基础端点以描述可用合同的 WDSL 文档进行响应。不需要,因为所有操作都将通过 GET 请求完成,这些请求不太可能改变,但如果有...

目前就是这样;)我已经阅读了很多关于 WCF 的内容,并希望我很久以前就开始了解它,但肯定还在学习。

0 投票
1 回答
714 浏览

c# - WCF Web/ServiceHost - 单例和初始化

我有一些服务类,它被定义为 InstanceContextMode.Single,并且在托管应用程序中是众所周知的。(主机创建一个实例,并将其传递给 WebServiceHost)

托管应用程序:

问题:
当我去使用创建服务时初始化的变量时(即,当调用服务时),它们要么是空的,要么是空的......

假设在托管应用程序中初始化的实例用于对 WebServiceHost 的每个请求,我错了吗?

这里的任何指针都会很棒。

0 投票
1 回答
783 浏览

c# - 将 WCF ServiceHost 路由到另一台计算机

再会,

当谈到 WCF 时,我不是专家,但我知道基础知识。

我的问题是,当代码在机器 Y 上时,如何在机器 X 上创建 ServiceHost?

如果我在我的开发机器(本地主机)上构建并运行此代码:

必须在数据中心服务器上完成什么实现,这样如果我必须指向http://my.datacenter.com/MyApp/MyService1,它会将服务操作路由到我的开发机器(localhost)。

但是,不应通过 Internet 访问数据中心。

这是一种可能的基础架构,我们正在研究是否可以创建服务总线类型的架构,以便我们所有的客户都可以通过调用我们的数据中心 url 来调用在他们各自的机器上运行的其他客户服务。

我们已经研究过 Windows Azure,但我们有自己的数据中心基础设施,我们希望利用这些基础设施。想想看,我们有点像在非常基本的规模上构建自己的 Azure。

怎么去创造这个?

提前致谢

0 投票
3 回答
7776 浏览

wcf - 服务主机抛出错误,即使使用 netsh 添加到配置中

ServiceHost.Open()正在抛出此错误:

HTTP 无法注册 URL http://+:8001/。您的进程没有对此命名空间的访问权限(有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=70353)。

所以我用netsh来添加url。但是尽管添加了事件,但我仍然收到错误消息。这是我使用的命令:

netsh http add urlacl url=http://+:8001/ user=djerryy

djerryy是我的计算机名。当我运行 netsh http show urlacl 时,我看到它被添加了。

我究竟做错了什么?

提前致谢。

0 投票
3 回答
2474 浏览

.net - WCF 线程 - 非响应式 UI

我正在尝试配置一些 WCF 的东西。目前,我有一个允许远程用户下载文件的服务器和客户端。在服务器中,我使用了一个 ServiceHost 类。我认为它应该在单独的线程上运行,但是,当有人下载​​文件时,服务器 UI(WinForms)会被锁定。有没有办法管理 WCF 线程模型?

谢谢!

0 投票
0 回答
627 浏览

wcf - ServiceHost 打开延迟

自从用 Windows 7 Ultimate(从 XP)更新我的工作站后,在实例化的 ServiceHost 上调用 Open() 后,我经历了大约 40 秒的延迟。

当我在主机 Windows 服务器上运行具有相同配置的 exe 时,它​​会立即打开。关于我的工作站上的这种行为有什么想法吗?

运行 Visual Studio 2010 Ultimate、Windows 7 Ultimate x64、8gig RAM。

更新....我发现删除 1. service mex 端点(留下一个 net.tcp 端点) 2. 服务主机 http 基地址 3. 服务行为 httpGetEnabled

解决了这个问题。如果我将 net.tcp 端点更改为使用 basicHttpBinding,则打开需要 40 秒。但是为什么使用 http 端点(mex 或 service-contract)设置端点会有 40 秒的延迟?

0 投票
2 回答
978 浏览

c# - 如何在没有本地管理员的情况下使用 IPC?

我目前在.Net 中维护一个内部应用程序。应用程序使用 IPC 一次维护一个正在运行的会话;如果另一个会话尝试打开(有人再次单击图标,有人打开保存的结果文件),第二个会话将其传达给第一个会话,然后终止,第一个会话然后启动请求的操作。

我目前使用 System.ServiceModel 命名空间来执行此操作,如下所示:

namespace EventLogViewer.IPCServer { //提供进程间通信的通用框架。

这段代码最初是在 Windows XP 下开发的,就像大多数公司一样,我们没有迁移到 Vista。由于我们都以本地管理员身份运行,因此此代码运行没有问题。

但是,我们现在正在过渡到 Win 7,并且此代码在启动时会产生异常,因为它无法注册 IPC 端点。更多信息在这里: http: //mark.michaelis.net/Blog/WindowsCommunicationFoundationWithWindowsVistaAndUAC.aspx

给出的解决方法是将应用程序升级为需要管理员权限。这不起作用有两个原因:

  1. 此应用程序不需要管理员权限,否则
  2. 我们使用 ClickOnce 来部署我们的内部工具,并且 ClickOnce 不支持除了作为进程启动器运行之外的任何内容。

所以在这一点上,我需要找到一个不需要管理员权限的 IPC 解决方案,让我实现最初的目标:检测已经运行的代码实例并告诉它要做什么,否则会自行启动。任何关于做什么的建议(在.Net框架内,请不要第三方解决方案)将不胜感激。

0 投票
2 回答
2009 浏览

c# - 是什么导致 WCF ServiceHost 崩溃?

我有一个 Windows 服务,它使用 WCF 在 4 个端口上公开相同的接口。地址是:

这项服务已经投入生产了很长时间,有时它会中断,我什至无法远程登录有问题的端口。我通常必须重置服务。

我真的不明白为同一个合同有很多端口,但这个解决方案可能掩盖了最初的问题。

无论如何,是什么导致服务主机在服务器端崩溃?客户端是否会使服务主机崩溃,或者它可能与某种拒绝服务有关?

PS:这个问题偶尔会发生,我无法在开发中重现。在生产中使用跟踪也不实际。

谢谢