我创建了一个 WCF 服务,它不使用 app.config 来配置自身。但是,在某些 PC 上构建 ServiceHost 对象需要三到四分钟。认为我的服务有问题,我构建了一个简单的 Hello, World 服务并尝试了它。我有同样的问题。
根据分析器的说法,所有这些时间都花在了读取服务的配置上。
所以我真的有两个问题。
是否可以禁用从 XML 读取配置?
更重要的是,有谁知道为什么这可能会花费如此多的时间?
这是示例服务:
[ServiceContract]
public interface IMyService
{
[OperationContract]
string GetString();
}
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
public class MyService : IMyService
{
public string GetString()
{
return "Hello, world!";
}
}
class Program
{
static void Main(string[] args)
{
Uri epAddress = new Uri("http://localhost:8731/Test");
Uri[] uris = new Uri[] { epAddress };
MyService srv = new MyService();
ServiceHost host = new ServiceHost(srv, uris); // this line takes 3-4 minutes
host.AddServiceEndpoint(typeof(IMyService), new WSHttpBinding(), "Test");
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
host.Description.Behaviors.Add(smb);
host.Open();
return;
}
}
出于设计原因,我需要创建服务并将其作为对象传递,而不是作为类型传递。
如果有更多信息可以使用,请告诉我。
非常感谢。