我遇到一些问题,让ServiceStack在我的运行在IIS 8.0上的Arvixe ASP.NET服务器上运行。
我按照http://servicestack.net/ServiceStack.Hello/上的教程,创建了一个空的ASP.NET Web应用程序,并在软件包管理器控制台中发出命令“PM> Install-Package ServiceStack.Host.AspNet”。
执行此操作后,我可以在localhost上从Visual Studio运行Web应用程序,Todo应用程序工作正常,我可以调用/ hello / {Name} url来获得正确的结果。
然后我尝试将项目上传到我在IIS 8.0上运行的Arvixe ASP.NET服务器,在这里它不起作用。 Todo应用程序加载但无法添加项目,当我尝试访问/ metadata或/ hello / {Name}时,我收到HTTP错误404.0 - 未找到如此:
我是ServiceStack的新手,所以我不知道如何解决这个问题。有人可以告诉我应该做些什么来使这个工作吗?
修改
我的Web.config
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
</providers>
</profile>
<roleManager enabled="false">
<providers>
<clear />
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>
<httpHandlers><add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" /></httpHandlers></system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<validation validateIntegratedModeConfiguration="false" />
<handlers><add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" /></handlers></system.webServer>
</configuration>
答案 0 :(得分:1)
<强>解决强>
我发现问题所在:我不得不手动上传Visual Studio生成的Web.config文件。将此文件上载到Web服务器的根目录后,该示例就可以正常工作。显然,使用Visual Studio 2010中的“发布”时,Web.config文件不会自动上载到服务器。
答案 1 :(得分:0)
实际上,当您使用Visual Studio 2010发布网站时,会上传web.config。必须有一个设置,您不允许上传web.config。