2017-07-04 183 views
0

「WebsiteA」試圖在其中託管另一個應用程序「API」。使用名爲「服務」的文件夾。從我讀過的子應用程序的工作中,我必須將我的處理程序移至父配置。所以,作爲新的.NET核心我敢肯定,我失去了一些東西簡單,但在父像這樣設置的處理程序:ASP.NET Core Web應用程序的Web.config設置作爲ASP.NET Core Web應用程序中的子應用程序?

<system.webServer> 
    <handlers> 
     <add name="aspNetCoreAPI" path="services\*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> 
     <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> 

    </handlers> 
    <aspNetCore processPath="dotnet" arguments=".\websiteA.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" /> 

    <aspNetCoreAPI processPath="dotnet" arguments=".\services\api.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" /> 


    </system.webServer> 

似乎aspNetCoreAPI標籤是一個沒有沒有爲應用程序拒絕配置格式不正確。

理想情況下,web.config應該如何設置在這種api應用程序的子應用程序場景中?

+0

是的,我的思維很不錯,發佈我的解決方案讓其他人呆在同一個地方。 – mservais

回答

1

是的,所以配置方法是完全不正確的。在父應用程序中保留配置文件,並在子應用程序中做一個簡單的處理程序排除(註釋掉),這會使配置問題發生變化。

家長:

<system.webServer> 
    <handlers> 
     <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> 
    </handlers> 
    <aspNetCore processPath="dotnet" arguments=".\websiteA.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" /> 
    </system.webServer> 

兒童:

<system.webServer> 
    <handlers> 
     <!--<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />--> 

    </handlers> 
    <aspNetCore processPath="dotnet" arguments=".\api.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" /> 
    </system.webServer> 

他們真正的關鍵是,你需要做一個真正除了Startup.cs父配置方法。 (https://github.com/aspnet/Hosting/issues/416#issuecomment-149046552

所以我說這在現有邏輯的方法底部:

app.Map("/services", (app1) => this.Configure1(app1, env, loggerFactory)); 

和創造,我從我的孩子申請複製的配置方法,新Configure1方法:

public void Configure1(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
     { 
      loggerFactory.AddConsole(Configuration.GetSection("Logging")); 
      loggerFactory.AddDebug(); 

      if (env.IsDevelopment()) 
      { 
       app.UseDeveloperExceptionPage(); 
      } 
      else 
      { 
       app.UseExceptionHandler("/Home/Error"); 
      } 

      app.UseStaticFiles(); 

      app.UseMvc(); 
     } 

我不喜歡我的父應用程序中的子應用程序目錄路徑和子應用程序邏輯,因爲它是一個緊密混淆的耦合,只是感覺不對。但據我瞭解,這正是現在的情況。

+0

一旦領帶通過,我會接受它作爲答案,沒有更好的解決方案出現。 – mservais

相關問題