2017-06-05 131 views
0

簡而言之:我試圖讓PHP運行在與ASP.Net Core站點相同的站點上。在Azure上運行ASP.Net核心和PHP

長:我重寫了我的網站從WebForms站點遷移ASP.Net核心1.1站點。我的舊網站同時運行了ASP.NET和PHP(我有一個WordPress實例運行在一個子文件夾下,用於將博客文章寫入sqlite數據庫,基本上將它用作內容管理部分,爲期4年)。

我曾希望用Azure上的ASP.Net Core做同樣的事情,但遇到問題。我已經發布了這個網站,並且.Net方面也開始運行。然而,PHP不再有效(似乎這些文件可能通過ASP.Net核心路由?)

在Azure中,我使用.Net Framework 4.6和PHP 5.6。「index.php」設置爲一個。默認的文件我曾嘗試處理程序映射設置到名爲php-cgi.exe我發現這使我想起這些文件不會被路由到PHP的事件日誌如下:

<Event> <System> <Provider Name="IIS AspNetCore Module"/> <EventID>1000</EventID> <Level>0</Level> <Task>0</Task> <Keywords>Keywords</Keywords> <TimeCreated SystemTime="2017-06-05T18:36:25Z"/> <EventRecordID>426103812</EventRecordID> <Channel>Application</Channel> <Computer>RD0003FF4207D0</Computer> <Security/> </System> <EventData> <Data>Application 'MACHINE/WEBROOT/APPHOST/YOURSITE/BLOG' with physical root 'D:\home\site\wordpress\' failed to start process with commandline '".\yoursite.exe" ', ErrorCode = '0x80070002 : 0.</Data> </EventData> </Event>

備註:

  • 我試圖將WordPress文件取出o f發佈的內容並使其成爲虛擬目錄(導致PHP內容被引用時導致HTTP錯誤502.5過程失敗)。
  • 我將WordPress文件作爲子文件夾留在了我的ASP.Net Core站點並重新發布,這些似乎是通過ASP.Net Core路由(並且在PHP頁面被訪問時帶我到404 ..雖然靜態該文件夾中的文件引用很好)。

我需要做什麼才能在同一個站點上運行ASP.Net Core和PHP?

回答

2

管理通過執行以下操作來解決。

在/博客目錄添加web.config文件,刪除aspNetCore處理

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.webServer>  
    <handlers> 
     <remove name="aspNetCore"/> 
    </handlers> 
    </system.webServer> 
</configuration> 
+0

哦,祝福你這個,你讓我的月! – SelAromDotNet

1

我不是ASP.Net核心專家,但我相信虛擬目錄是實現您的要求的最佳選擇。您可以查看以下主題了解詳情。

How can I host a php script on a dotnet core web app hosted at Azure

Create virtual directory on same azure web app

+0

謝謝你的答覆。我嘗試了這兩個都無濟於事。我試圖將PHP直接發佈到虛擬文件夾中(如圖所示),但當從Web瀏覽器調用虛擬目錄時,仍然會出現「HTTP錯誤502.5 - 進程失敗」。 –