我正在开发一个C#WCF项目,除了相当大但希望简单的问题外,我已经完成了它的工作。如何保持WCF Soap服务在程序运行期间打开
的WCF服务是从我的控制台应用程序中托管和我的控制台应用程序调用一个函数不同的类以打开WCF服务的连接。
但是,如果函数的最后一行是host.open();函数调用然后完成到连接关闭,服务不能再使用。但是,如果我在console.open之后放置Console.ReadLine(),那么服务将保持打开状态,我可以使用它,但显然程序的其余流程不再运行。
下面是我用来打开主机连接的代码。
public void startSoapServer()
{
string methodInfo = classDetails + MethodInfo.GetCurrentMethod().Name;
if (String.IsNullOrEmpty(Configuration.soapServerSettings.soapServerUrl) ||
Configuration.soapServerSettings.soapPort == 0)
{
string message = "Not starting Soap Server: URL or Port number is not set in config file";
library.logging(methodInfo, message);
library.setAlarm(message, CommonTasks.AlarmStatus.Medium, methodInfo);
return;
}
//baseAddress = new Uri(string.Format("{0}:{1}", Configuration.soapServerSettings.soapServerUrl,
// Configuration.soapServerSettings.soapPort));
baseAddress = new Uri("http://localhost:6525/hello");
using (ServiceHost host = new ServiceHost(typeof(SoapServer), baseAddress))
{
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
host.Description.Behaviors.Add(smb);
host.Opened += new EventHandler(host_Opened);
host.Faulted += new EventHandler(host_Faulted);
host.Open();
Console.ReadLine();
}
没有Console.ReadLine()函数完成,连接关闭。如何让主机在C#应用程序运行期间保持打开状态。
这个函数调用是通过在控制台内启动一些东西,在Main方法中间调用的。
感谢您提供的任何帮助。
现在非常感谢。谢谢你的帮助 – Boardy 2013-03-04 23:47:41