让我作为序言(因为我知道我最终会在回复中得到这个)
好的,我的问题如下。首先,我想将一些.asmx移动到一个单独的项目中。现在它在我们的WAP项目中的几个分散的文件夹中。好的,如果我创建一个新项目:
1)它应该是什么类型? 2)我现在必须面对哪些部署问题?有人告诉我,如果我们将它移动到一个单独的项目,我们必须单独部署它,我认为这意味着IIS,是的,将该项目复制到服务器上的另一个地方 3)有人告诉我,如果我们将其移出WAP项目,我们就不能再在我们的域名下运行该服务(something.com)。但是有人告诉我你可以设置一个单独的Web服务作为“传递”并在任何地方拥有实际的.asmx文件?我不明白。
主要关注的是移动它。如何公开该Web项目中的服务,因为我们将有多个。如何部署(文件和IIS),然后如何确保它在生产中的同一域下仍然可用。
答案 0 :(得分:3)
asmx文件只是指向C#代码文件的指针。您可以在Web项目的任何位置包含asmx文件。
您可以在Visual Studio IDE中创建Web服务项目,或者只是创建一个类库并添加必要的引用。
Web服务项目使用以下DLL:
以下web.config参考:
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpHandlers>
答案 1 :(得分:1)
同意,创建一个新的Web服务项目。
将您的Web服务与IIS中的现有站点一起部署没有任何问题。
创建您现有的网站网址www.something.com然后在IIS中添加虚拟目录或应用程序到myservice,以便获得www.something.com/myservice/awesome.asmx。
您还可以创建一个备用主机标头,以将webservices.something.com定向到您的网络服务。