2012-12-06 23 views
3

在ServiceStack Razor项目上工作时,看到不一致的结果。问题是有些项目开始无法在我的开发环境中提供cshtml页面(Win 8,VS 2012)。在调试主页(default.cshtml)使用IIS快递返回:ServiceStack Razor cshtml页面没有在开发机器上提供

Forbidden 

Request.HttpMethod: GET 
Request.PathInfo: 
Request.QueryString: 
Request.RawUrl: /default.cshtml 
App.IsIntegratedPipeline: True 
App.WebHostPhysicalPath: C:\Users\jim\Documents\Visual Studio > 2012\Projects\Test.Web\Test.Web 
App.WebHostRootFileNames: [about.cshtml,apphost.cs,default.cshtml,global.asax,global.asax.cs,packages.config,pricing.cshtml,privacy.cshtml,reconcilable.web.csproj,test.web.csproj.user,terms.cshtml,web.config,web.debug.config,web.release.config,bin,obj,properties,public,services,views] 
App.DefaultRootFileName: default.cshtml 

如果我要求在不同的URL我看到以下页面:

Handler for Request not found: 

Request.ApplicationPath:/
Request.CurrentExecutionFilePath: /terms 
Request.FilePath: /terms 
Request.HttpMethod: GET 
Request.MapPath('~'): C:\Users\jim\Documents\Visual Studio 2012\Projects\Test.Web\Test.Web\ 
Request.Path: /terms 
Request.PathInfo: 
Request.ResolvedPathInfo: /terms 
Request.PhysicalPath: C:\Users\jim\Documents\Visual Studio 2012\Projects\Test.Web\Test.Web\terms 
Request.PhysicalApplicationPath: C:\Users\jim\Documents\Visual Studio 2012\Projects\Test.Web\Test.Web\ 
Request.QueryString: 
Request.RawUrl: /terms 
Request.Url.AbsoluteUri: http://localhost:51000/terms 
Request.Url.AbsolutePath: /terms 
Request.Url.Fragment: 
Request.Url.Host: localhost 
Request.Url.LocalPath: /terms 
Request.Url.Port: 51000 
Request.Url.Query: 
Request.Url.Scheme: http 
Request.Url.Segments: System.String[] 
App.IsIntegratedPipeline: True 
App.WebHostPhysicalPath: C:\Users\jim\Documents\Visual Studio 2012\Projects\Test.Web\Reconcilable.Web 
App.WebHostRootFileNames: [about.cshtml,apphost.cs,default.cshtml,global.asax,global.asax.cs,packages.config,test.web.csproj,test.web.csproj.user,terms.cshtml,web.config,web.debug.config,web.release.config,bin,obj,properties,public,services,views] 
App.DefaultRootFileName: default.cshtml 
App.DefaultHandler: default.cshtml 
App.DebugLastHandlerArgs: GET|/terms|C:\Users\jim\Documents\Visual Studio 2012\Projects\Test.Web\Test.Web\terms 

我可以创造一个干净的新项目为页面提供正确的服务,但具有相同web.config,AppHost,Global.asax文件的较旧项目失败。代码如下:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
     <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
     <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 
    <system.web> 
    <compilation debug="true"> 
     <assemblies> 
     <add assembly="System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     </assemblies> 
     <buildProviders> 
     <add extension=".cshtml" type="ServiceStack.Razor.CSharpRazorBuildProvider, ServiceStack.Razor" /> 
     </buildProviders> 
    </compilation> 
    </system.web> 
    <!-- Required for IIS 7.0 --> 
    <system.webServer> 
    <handlers> 
     <add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" /> 
    </handlers> 
    </system.webServer> 
    <appSettings> 
    <add key="webPages:Enabled" value="false" /> 
    </appSettings> 
    <system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <pages pageBaseType="ServiceStack.Razor.ViewPage"> 
     <namespaces> 
     <add namespace="ServiceStack.Html" /> 
     <add namespace="ServiceStack.Razor" /> 
     <add namespace="ServiceStack.Text" /> 
     <add namespace="ServiceStack.OrmLite" /> 
     </namespaces> 
    </pages> 
    </system.web.webPages.razor> 
</configuration> 

public class Global : HttpApplication 
{ 
    protected void Application_Start(object sender, EventArgs e) 
    { 
     new AppHost().Init(); 
    } 

} 

public class AppHost : AppHostBase 
{ 
    public AppHost() : base("test", typeof(AppHost).Assembly) { } 

    public override void Configure(Funq.Container container) 
    { 
     Plugins.Add(new RazorFormat()); 
    } 
} 

当项目部署到服务器时,我看不到相同的问题。有人能够给我一些关于可能导致这种情况的想法吗?

回答

1

回答我自己的问题:

我觉得这个问题是特定于我的开发机器的。当我在家用PC上调试网站时,没有任何问题。我的结论是,我的开发机器有一个导致这个问题的配置。我想我需要看看机器而不是代码来试图解决这个问题。

+0

我得到了同样的问题;你发现问题是/是什么? – KBoek

+0

我也是,任何解决方案? –

+0

有一个工作。如果更新,请将您的cshtml文件属性更改为复制并检查它是否正常工作。这是错误的,但可能会有所帮助。 – kunjee

相关问题