问题标签 [self-hosting]

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 投票
5 回答
5552 浏览

web - 简单的自托管网站监控

我正在寻找一个简单的自托管网站监控工具。它应该类似于 watchmouse.com 或 pimgdom.com,具有漂亮的 UI、彩色图表等(客户喜欢 :))。目前我们也使用 Zabbix 进行 HTTP 监控,但由于现在我们的主机直接关心机器上的硬件和软件监控,我们不再需要 Zabbix。对于纯 http 监控 zabbix 或其他监控套件真的是大材小用。

所以我不想要的是:

  • 扎比克斯
  • 纳吉奥斯
  • 海瑞克
  • ...

可悲的是,事实是,经过几个小时的研究,我无法找到合适的应用程序。我的希望现在在你身上。

0 投票
1 回答
3284 浏览

c# - 在自托管 c# WCF 控制台应用程序中使用 web.config(设置 MaxStringContentLength 服务器端)

我有一个简单的自托管WCF 控制台 Windows 应用程序,我可以从我的客户端正常连接。尽管将大型 XML 字符串发送到服务器,但我遇到了问题。我收到以下错误:

“System.Xml.XmlException:读取 XML 数据时超出了最大字符串内容长度配额 (8192)。可以通过更改XmlDictionaryReaderQuotas 上的MaxStringContentLength属性来增加此配额...”

我可以通过更改其 app.config 文件(由 svcutil.exe 生成)在客户端中设置MaxStringContentLength 。

但在服务器端,我无处可更改。我已阅读有关web.config文件的信息,但不确定 WCF 控制台应用程序是否可以拥有一个,如果可以,我如何阅读并使用它?我的自托管代码如下:

0 投票
2 回答
2063 浏览

wcf - 基于基本 HTTP 绑定的 SelfHosted WCF 服务不支持超过 1000 个并发请求

我已经自行托管了一个 WCF 服务,BasicHttpBindingASMX Client. 我正在模拟1200个用户的并发用户负载。service 方法接受一个字符串参数并返回一个字符串。交换的数据小于10KB。使用 Thread.Sleep(2000) 语句将请求的处理时间固定为 2 秒。没有额外的东西。我已经删除了所有的 DB Hits / 业务逻辑。

同一段代码对 1000 个并发用户运行良好。当我将数量增加到 1200 个用户时,我收到以下错误。

此异常通常在 DataContract 不匹配和大型数据交换时报告。但是在进行负载测试时永远不会。我已经浏览了足够多的内容并尝试了大多数选项,其中包括,

  1. 在服务器端启用跟踪和消息日志。但没有记录错误。
  2. 为了克服端口耗尽,MaxUserPort 设置为 65535,TcpTimedWaitDelay 设置为 30 秒。
  3. MaxConcurrent Calls 设置为 600,MaxConcurrentInstances 设置为 1200。
  4. 打开、关闭、发送和接收超时设置为 10 分钟。
  5. HTTPWebRequest KeepAlive 设置为 false。

在过去的两天里,我一直无法确定这个问题。

任何帮助,将不胜感激。

谢谢你。

0 投票
1 回答
3359 浏览

c# - 在 WPF 中自托管 WCF

感谢 Kent Boogart 的回答,现在一切正常。非常感谢您的所有回答!


你好,

我需要在 WPF gui 中自行托管 WCF 服务。我正在使用服务主机。

但我仍然无法解决问题。

首先我托管一个服务:

我想在按下按钮时刷新数据,所以:

它有效,但只有一次。如果我尝试多次刷新它,它就是行不通的。

这是我的 WCF 服务声明:

奇怪的是,当我从客户端应用程序连接时。我可以得到所有的数据,一切都是正确的。我只是无法将数据输入 GUI(好吧,我只能获得一次)。

非常感谢您!

0 投票
2 回答
7579 浏览

c# - 防火墙后的 WCF 服务 – 如何设置端口转发?

我刚刚进入 WCF 编程。我在防火墙后面的工作计算机上设置了一个自托管的测试 Web 服务;它在http://localhost:8000/MyTestService。我可以通过浏览器访问服务页面;一切正常。

现在我想从位于不同网络上的家用计算机访问该服务。我有一个动态 dns(称为 mydomain.dyndns.org)设置为指向我的工作路由器。经测试, dyndns 指向正确的地址。

现在我已经在我的家用电脑上安装了一个测试应用程序来连接我的网络服务。因此,我将 NAT 配置为将端口 8000 上的请求转发到相同端口号上的工作计算机。

在我的家用电脑上,我现在打开浏览器并导航到http://mydomain.dyndns.org:8000/MyTestService. 无所事事。

显然我错过了关于 NAT 和端口转发的一些真正基础的东西......但正如我所说,我在编程的这方面有点新,我非常感谢这里的一些指导!

0 投票
2 回答
669 浏览

.net - 在同一进程中的多个 Windows 服务中托管 WCF 服务

我正在构建一个 Windows 服务来托管 WCF 服务,并且我正在使用:

我的问题是:

如果我的主机有第二个服务,并且我在上面的代码中添加到数组中,如下所示:

第二台主机是否使用自己的应用程序域运行,或者我必须做一些配置才能使两台主机分别运行它单独的应用程序域?

0 投票
1 回答
424 浏览

c# - 自托管 WCF 服务 - 令人困惑的行为

我正在学习 WCF,作为一个实践练习,我决定为 ServiceHost 类编写通用包装器。这个想法是有一个像下面这样的类:

其中 I 类型是具有[ServiceContract]属性的接口,而 S 类型是实现上述接口的服务。

同时,我创建了一个辅助的 hello-world 类型服务来随时随地测试我的课程。

在主机的构造函数中,我实例化了内部 ServiceHost,如下所示:

我添加了一个服务端点:

过了一会儿,我打开了主机,启动了我的应用程序并尝试查看我的浏览器是否会指示“http://localhost:40000/MyTestService”下存在服务 - 我得到一个空白页面,所有尝试添加一个服务引用失败。

我后来在 ServiceHost 的构造函数中添加了相同的 Uri:

该构造函数的第二个参数是:

或者

无论如何,“params”关键字的存在告诉我这个参数是可选的。

我重新激活了我的应用程序,并且(使用浏览器)导航到了 uri。服务页面弹出。总而言之 - 它正在工作,但不是我预期的方式,我似乎遗漏了一些东西。

问题 :

  1. Why did the service fail when I did not supply the optional baseAddresses parameter in the ServiceHost constructor - while attempting to feed the addresses while adding service endpoints?

  2. Can I achieve my goal "the way I initially wanted it to be" ?

Best regards, and hoping to hear from any WCF experts soon(tm).

0 投票
3 回答
2365 浏览

c# - 本地托管的 WCF 服务 - 我不希望客户端必须进行身份验证

我有一个由桌面应用程序托管的自托管 WCF 服务。
我可以在我的 PC 上本地成功连接到该服务,但我不能远程使用该服务,至少在不提供我的 windows/域级别凭据的情况下。

我使用以下代码在应用程序中启动服务:

如果我创建一个简单的客户端来使用以下代码调用服务:

我收到以下异常:

System.ServiceModel.Security.SecurityNegotiationException:服务器已拒绝客户端凭据。---> System.Security.Authentication.InvalidCredentialException:服务器已拒绝客户端凭据。---> System.ComponentModel.Win32Exception:登录尝试失败

现在,从其他研究中,我发现我可以使用以下代码在客户端调用中提供我的凭据:

现在,代码成功完成。

我很难弄清楚如何删除此要求。我试过在客户端上搞乱绑定设置,但没有成功。

谁能指出我正确的方向?

0 投票
2 回答
1071 浏览

c# - 按需启动自托管 WCF 服务

是否可以按需启动自托管 WCF 服务?

我看到两个选项来实现这一点:

  • 在自托管 WCF 的 Web 服务器中插入一个侦听器,并在对特定服务的请求进入时启动服务主机,然后 WCF 开始寻找该端点的存在;或者

  • 在进程中集成 Web 服务,如果请求尚未运行,则启动服务主机并将请求重定向到该服务主机(就像我怀疑 IIS 所做的那样)。

我不能使用 IIS 或 WAS,因为 Web 服务需要与 UI 业务逻辑一起运行。

哪个是可行的,我该如何做到这一点?

编辑:
我不能只启动服务主机,因为有数百个,其中大多数(约 95%)(几乎)从未使用过但需要可用。这是为了公开 900 个实体的业务逻辑层。

0 投票
2 回答
309 浏览

c - C如何自我托管自己?

有人知道从.c源代码到最终可执行文件的完整操作链.exe吗?

我已经下载了gcc的源代码,发现它c-parser.y也是用c编写的:

那么有人知道c自托管的完整故事吗?

更新

我知道一些脚本编译器是如何编写的,其中大部分依赖于 c 编译器。

所以我现在问c编译器是如何工作的。