gpt4 book ai didi

wcf - 在 IIS 中以编程方式配置和托管 WCF 服务

转载 作者:行者123 更新时间:2023-12-04 14:03:54 25 4
gpt4 key购买 nike

如何在 IIS 中以编程方式配置和托管 WCF 服务。我已经创建了我的 WCF 服务示例/WCFServices/Service1.svc”。我想以编程方式在 IIS 中配置和托管此服务。任何人都可以帮助我吗?

最佳答案

你想要的类是 Microsoft.Web.Administration.ServerManager

http://msdn.microsoft.com/en-us/library/microsoft.web.administration.servermanager(v=VS.90).aspx

它具有操作 IIS 大部分方面的方法,例如,添加应用程序池和应用程序。例如,这段代码配置了一个新的 IIS 应用程序

//the name of the IIS AppPool you want to use for the application  - could be DefaultAppPool
string appPoolName = "MyAppPool";

//the name of the application (as it will appear in IIS manager)
string name = "MyWCFService";

//the physcial path of your application
string physicalPath = "C:\\wwwroot\mywcfservice";


using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection sitesSection = config.GetSection("system.applicationHost/sites");
ConfigurationElementCollection sitesCollection = sitesSection.GetCollection();
ConfigurationElement siteElement = sitesCollection[0];
ConfigurationElementCollection siteCollection = siteElement.GetCollection();
ConfigurationElement applicationElement = siteCollection.CreateElement("application");
applicationElement["path"] = name;
applicationElement["applicationPool"] = appPoolName;
ConfigurationElementCollection applicationCollection = applicationElement.GetCollection();
ConfigurationElement virtualDirectoryElement = applicationCollection.CreateElement("virtualDirectory");
virtualDirectoryElement["path"] = @"/";
virtualDirectoryElement["physicalPath"] = physicalPath;
applicationCollection.Add(virtualDirectoryElement);
siteCollection.Add(applicationElement);
serverManager.CommitChanges();
}

一般来说,calss 只是 IIS 配置文件的薄包装。您可以通过查看现有文件来理解它,甚至可以通过查看您必须在 IIS 管理器中执行哪些操作来手动配置服务,然后将其转化为生成的配置更改。

您可以通过这种方式完成所有(至少很多)IIS 配置(例如配置应用程序节流、启用身份验证方案等)。

配置的 WCF 部分只是普通的 WCF。您可以在代码或配置中执行此操作。

关于wcf - 在 IIS 中以编程方式配置和托管 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17740126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com