问题标签 [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.
c# - 使用 WCF 自托管在调试模式下运行 consol 应用程序?
我有一个托管在 consol 应用程序中的 WCF 服务(也充当 Windows 服务安装程序),请在此处查看更多信息:http: //msdn.microsoft.com/en-us/library/ms733069.aspx
这是 consol 应用程序中的类的样子:
这是为在 Windows 服务中运行而设计的,我该如何做才能在调试模式下(在开发期间)将其作为常规 selfhost 运行?还是我真的必须启动一个特殊项目才能在运行时调试此服务?
编辑:
我决定使用现有的 windows 服务项目,但将 main 更改为如下内容:
.net - 为什么 WCF ServiceHost 一旦超出范围就保持打开状态?
我只是在整理我的一些 WCF(自托管)代码,并意识到我的 ServiceHost 对象在最初设置后超出了范围,但我仍然可以连接到它。
如果我再次调用它并重新实例化它并尝试再次打开它,我会收到一条错误消息,指出已经有一些东西连接到端点。它仅在应用程序关闭时才被释放。
我只能假设对 Open() 的调用在较低级别上做了一些事情,以使其以现在不受管理的方式保持打开状态。但是,除非我在这里完全误解了事情,否则我找不到任何有关此的信息。
考虑一下,连接现在仍然打开,但我无法在不杀死应用程序的情况下恢复它(关闭等),这似乎并不正确。或者也许这甚至无关紧要,如果它不伤害任何东西,我可以一直让它打开?
更新:所以我接受了 Eiver 的回答,因为它解释了我最初的问题,即为什么即使在超出范围后它仍然保持打开状态。但是,我现在想知道一些关于此的事情(或者我可能对线程缺乏经验)。首先,只要它是开放的,我是否会为此烦恼,这一切都是正确的。如果有某种方法可以通过将线程保持在范围内来访问线程,它甚至会有所帮助。也许,像这样设置它(并且从不调用 close)使调用代码变得简单(即不必保留引用),我什至可以将它包装在一个静态方法中以进行更简单的调用。听起来有点躲闪……嗯!
更新2:所以,我知道这样做不好,因为这意味着我不再控制主机和启动它的线程。所以我把它全部包装成一个单例,让我能够在任何时候访问主机(对于错误、事件、在同一端点上关闭/重新打开等)并使调用非常简单(就像一个简单的静态方法称呼)。
dependency-injection - 如何让自托管与 IoC 一起进行 Web-Api 集成测试?
我从这里得到了提示,为我的新 Web Api 项目提出了这个集成测试。我正在尝试构建一个 REST Web 服务,并且我有一个助手客户端,我计划发布给 API 消费者。那是ExampleClientHelper
那里的类型。哦,顺便说一句,这一切都ValuesController
与 MVC4 Web Api Visual Studio 项目的项目模板一起提供的内容有关——我在搞清楚这一点时会保持简单。
ExampleClientHelper
替换上述参考示例中的所有请求/响应。它在内部使用RestSharp。
只要您不修改ValuesController
. IE。它仍然有一个隐式的无参数构造函数。
ValuesController
我遇到的问题是,当我将其修改为需要依赖项时,自托管服务器似乎无法实例化我的。问题是,无论我是否连接Autofac DependencyResolver ,我都会从我的助手客户端的响应中得到相同的异常。这是响应内容中返回的内容,由于 RestSharp,它被很好地格式化为 JSON:
{"ExceptionType":"System.ArgumentException","Message":"Type 'Embed.ECSApi.RestServer.Controllers.ValuesController' 没有默认构造函数","StackTrace":" 在 System.Linq.Expressions.Expression。新建(类型类型)\r\n 在 System.Web.Http.Internal.TypeActivator.Create[TBase](类型 instanceType)\r\n 在 System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage 请求,HttpControllerDescriptor controllerDescriptor , 类型控制器类型)"}
很明显,自托管服务器正在尝试创建ValuesController
,但它不能。为什么?我以为我正确连接了 DependencyResolver。我希望得到一个 Autofac 异常,而不是抱怨我没有配置的依赖项。
c# - 自托管 WCF 服务:ConcurrencyMode.Multiple 但只使用一个线程?
我已经迈出了使用 WCF 开发 WINDOWS 服务托管计算引擎的第一步。该服务运行良好,但它似乎只为我的所有调用使用一个线程,但我需要它具有可扩展性并使用多线程。
忽略代码等中的所有跟踪,因为它是这个应用程序的早期阶段。
它调用一些第三方软件 (COM),在服务启动时将信息读入内存 (ThirdParty.Initialise(strInit)),然后每次调用 ProcessInformation 从给定的 XML 字符串返回计算结果。
到目前为止,无论我将 ServiceBehavior atts 设置为什么,也无论我使用多少个单独的消费者,所有调用似乎都只使用一个线程 - 有人可以帮忙吗?
代码概述:
配置:
windows - 服务无法启动:无法加载程序集
我正在尝试组合一个托管 WCF 服务的 Windows 服务。我的项目结构如下:
- 服务
- 服务合同
- 服务主机
- 服务设置
Service.Host 项目包含 ProjectInstaller,Service.Setup 项目包含 WindowsInstaller。
现在,一切构建和安装都很好,但是当我尝试启动服务时,它会立即停止运行,并在我的事件日志中显示以下消息:
当我检查我的安装项目的输出文件夹时,我可以同时看到 Service.dll 和 Service.Contracts.dll ......这让我措手不及。当一切正常时,我该如何调试?该怎么办?
dependency-injection - 当 webApi 与 HttpSelfHostServer 一起运行时,有没有办法添加 httpModule?
我有一个 MVC4 webapi 控制器。它没有无参数的构造函数。所以,我使用 Windsor 依赖解析器,在 System.Web.Http.WebHost 下工作时一切正常。但是,当我尝试使用 HttpSelfHostServer 时,我收到异常消息:
Looks like you forgot to register the http module Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule
To fix this add
<add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor" />
to the <httpModules> section on your web.config.
If you plan running on IIS in Integrated Pipeline mode, you also need to add the module to the <modules> section under <system.webServer>.
Alternatively make sure you have Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 assembly in your GAC (it is installed by ASP.NET MVC3 or WebMatrix) and Windsor will be able to register the module automatically without having to add anything to the config file.
显然,windsor di 无法注册他的 HttpModule。我试图添加
<system.web>
<httpModules>
<add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor" />
</httpModules>
</system.web>
在我的 app.config 中,没有运气。尝试 WebActivator 使用 PreApplicationStart 方法也没有运气。有什么方法可以为自托管 webapi 应用程序添加 httpModule 吗?
.net - Protobuf.net 和 WCF 自托管收到空请求?
我有一个 WCF 服务,我在 IIS7 和 selfhost 中托管,并且使用默认的 serlizer 它在两者中都很好用。
运行 protobuf.net 端点时,它对 IIS7 主机非常有效,但是当对 selfhost 运行时,我只是在第一个服务方法中得到 null 作为请求?
我应该去哪里看?你需要什么来帮助我解决这个问题?
此致
编辑1:App.config(selfhost)
wordpress - Wordpress.com 托管
我在 hostmonster.com 上注册了一个域,而我的博客现在在 wordpress.com 上,我如何将我的域转移到 Wordpress(我认为这是不可能的)或将我的域 URL 映射到我的 Wordpress 博客。
注意:我不需要自托管我想使用 wordpress.com 托管。
知道我该怎么做。
wcf - 自托管 WCF 未运行工厂(CustomHostServiceFactory)?
我有一个可以放在 IIS7 和 selfhost 中的 WCF 服务。SVC 文件如下所示:
问题是如果服务是自托管的,则不会运行 CustomHostServiceFactory?有没有办法让它工作?
从 IIS7 运行时,它工作正常。
c# - 在 Windows 服务中自托管 WCF 的 Silverlight 跨域问题
我有一个 Silverlight 应用程序,它在我的本地机器上完美运行,使用 WCF 服务形成一个开发服务器(在 Windows 服务中自托管)。
我必须调试其中一个 WCF 服务,才能找到错误的根本原因。我在服务中添加了我的调试/跟踪信息,并安装在虚拟机(甚至本地)中,但从那时起,我得到了众所周知的跨域错误:
“尝试向 URI 'http://MyVMMachine:4096/MyService' 发出请求时发生错误。这可能是由于尝试以跨域方式访问服务而没有适当的跨域策略,或不适合 SOAP 服务的策略。您可能需要联系服务所有者发布跨域策略文件,并确保它允许发送与 SOAP 相关的 HTTP 标头。此错误也可能是由于使用Web 服务代理中的内部类型,而不使用 InternalsVisibleToAttribute 属性。有关更多详细信息,请参阅内部异常。
这很奇怪,因为如果从开发服务器使用,它可以正常工作,但如果将服务安装在开发机器中,或者甚至在本地(在 Windows 服务中自托管),它就不起作用。
这是服务原始代码:
在阅读了Carlos Figueira关于此主题的文章后,我应用他的方法更改了服务,但仍然无法正常工作。
有任何想法吗???
谢谢!