C# 使用单独的程序集将方法添加到webservice(asmx)

C# 使用单独的程序集将方法添加到webservice(asmx),c#,asp.net,C#,Asp.net,我正在管理一些具有类似功能的网站。它们使用了大量的web服务。我希望能够在bin目录中删除一个程序集,以便向现有功能添加一个附加方法。稍后,我希望能够删除这个dll文件,然后删除web服务中的附加方法 这可能吗?这可能不适用于asmx,但可能会有所帮助。我最初的想法是使用web.config键/值对作为开关来打开和关闭功能。您可以编辑web.config值,而无需快速轻松地重新编译任何内容。例如,如果值为1,则像正常一样执行新服务,否则抛出错误 <appSettings> <

我正在管理一些具有类似功能的网站。它们使用了大量的web服务。我希望能够在bin目录中删除一个程序集,以便向现有功能添加一个附加方法。稍后,我希望能够删除这个dll文件,然后删除web服务中的附加方法


这可能吗?

这可能不适用于asmx,但可能会有所帮助。我最初的想法是使用web.config键/值对作为开关来打开和关闭功能。您可以编辑web.config值,而无需快速轻松地重新编译任何内容。例如,如果值为1,则像正常一样执行新服务,否则抛出错误

<appSettings>
  <add key="NewServiceSwitch" value="1" />
</appSettings>

好的,这是可能的,
我所做的就是添加新的Web服务,排除这个文件,编译并发布这个站点。接下来克隆站点。在克隆版本上,更改项目名称并删除每个依赖项(可能有些依赖项是可能的,但我没有尝试)。然后我发布了这个新网站。并且只复制了dll、.compiled和asmx文件。

毫无疑问,当您可以切换主程序集文件时,您想知道为什么。有两种想法:一个独立的开发团队可以独立工作,我也可以向客户保证,我会插入一个文件来添加功能,然后将其删除,另外,为现有和已部署的网站提供功能而无需重新编译也很好。这将在一定程度上保证没有任何变化。附加功能将用于调试和健全性检查。您应该将其放入问题本身,而不是将其作为注释。到目前为止,我尝试的是创建一个重载System.Web.Services.WebService的新类。我在其中编写Web服务,编译它,然后删除程序集。直到我添加了asmx文件(该文件包含由预编译工具生成的标记文件的内容,不应该删除!)它才起作用,这几乎可以起作用。我没有收到404错误消息。我收到一个错误,声明:“文件'/website/MyDroppedWebService.asmx'尚未预编译,无法请求。”我认为缺少的组件是一个.compiled文件。然而,这里面有一些散列