日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

网站部署后无法访问sqlserver_.NET Core跨平台部署

發布時間:2023/12/2 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网站部署后无法访问sqlserver_.NET Core跨平台部署 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. Windows-IIS

大家對于在IIS上部署.NET站點已經駕輕就熟了,部署.NET Core也沒有什么本質區別,但是這其中仍然有一些細節是不同的,下面記錄了一些我在部署時遇到的問題

1.1 安裝.NET Core Windows Server Hosting

要在IIS上運行http://ASP.NET Core,必須安裝.NET Core Windows Server Hosting

安裝完成后最好重啟IIS

如果沒有安裝該組件就直接打開部署的網站會出現 500.19 相關的配置數據無效

1.2 配置應用程序池

Core的IIS站點應用程序池的.NET CLR版本要選擇 無托管代碼

1.3 使用發布文件

我最開始測試的時候,仍然使用Web根目錄作為網站的物理路徑,但是網站無法訪問,報HTTP403錯誤——Web 服務器被配置為不列出此目錄的內容,也是就是這個文件夾下沒有可以訪問的文件,在查閱網上的資料后發現其他人都是使用了發布文件夾作為物理路徑,生成發布版本設置相應路徑后.NET Core的示例站點即可正常訪問

發布文件夾結構

成功訪問

2 Linux

微軟官方給出了不同系統的部署方法Tutorial Guide,由于Linux有不同的版本,所以這里選擇CentOS作為示例,有以下幾個步驟

2.1 添加.NET產品依賴

在安裝.NET之前,你需要注冊微軟的Key,注冊產品倉庫,并且安裝需要的依賴,在每臺機器上只需要做一次。

直接執行以下命令:

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

2.2 安裝.NET SDK

更新可供安裝的產品,然后安裝.NET SDK

輸入以下命令:

sudo yum update sudo yum install dotnet-sdk-2.2

中間有兩次手動確認,然后等待安裝完成即可

2.3 創建你的應用

通過輸入命令就可以創建一個官方的示例.NET Core程序

dotnet new console -o myApp cd myApp

第一條命令新建應用,第二條進入應用文件夾

通過 ls 命令我們可以看到該文件夾下只有兩個文件,obj是文件夾

默認的主文件Program.cs的內容如下:

using System;namespace myApp {class Program{static void Main(string[] args){Console.WriteLine("Hello World!");}} }

2.4 運行應用

dotnet run

2.5 創建web應用

使用mkdir命令新建一個文件夾mvc,然后進入目錄

創建網站

dotnet new mvc

然后發布這個網站程序

dotnet restore dotnet publish -c release

默認的發布目錄是在/bin/release/netcoreapp2.x/publish/里,可以新建一個目錄拷貝進去

scp -r /root/mvc/bin/release/netcoreapp2.2/publish/* /root/www/firstapp

2.6 從外網訪問web應用

完成發布后,已經可以通過執行dotnet命令來啟動網站了,但是只能在內網訪問,顯然這不是我們想要的,要想從外網訪問,我們需要反向代理服務器,這里選擇Nginx

使用yum命令遠程安裝

sudo yum install epel-release yum install nginx

啟動

systemctl start nginx #啟用Nginx systemctl enable nginx #設置開機啟動

這時候已經可以直接通過服務器的IP地址的80端口訪問Nginx的測試頁了,需要注意的是如果使用阿里云服務器,需要在安全組配置中開放80端口才能夠訪問

接下來根據需要進行一些端口的配置,dotnet默認的訪問端口為5000,但是我測試的時候好像是在linux上被占用了,所以對 Program.cs 進行修改,使其可以通過其他端口訪問,這里使用8080

public class Program {public static void Main(string[] args){CreateWebHostBuilder(args).Build().Run();}public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>WebHost.CreateDefaultBuilder(args).UseUrls("http://*:8080").UseStartup<Startup>(); }

改完之后需要重新生成發布,開始我使用的是微軟官方的示例程序,這里為了對比端口,我在自己Windows系統下新建了一個2.1的示例程序,使用VS2017進行程序修改,發布后通過xftp再上傳到Linux服務器上

然后去修改Nginx的配置,默認的路徑應該是/etc/nginx/nginx.conf,在server節點下的location節點加一句 proxy_pass http://localhost:8080; 就可以

server {listen 80 default_server;listen [::]:80 default_server;server_name _;root /usr/share/nginx/html;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;location / {proxy_pass http://localhost:8080;}error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {} }

修改完成后測試并重啟Nginx服務

sudo nginx -t #測試配置 sudo nginx -s reload #重新加載配置

配置完成之后,啟動網站訪問服務器IP地址的8080端口即可

但是啟動網站這里存在一個問題,如果像上面那樣沒有使用cd命令進入網站目錄啟動,樣式和腳本等文件的路徑就會出現錯誤,導致頁面顯示不正常所以要在網站目錄啟動

基本的網站部署就到這里,下一次講講用Docker如何進行.NET Core的部署與開發

總結

以上是生活随笔為你收集整理的网站部署后无法访问sqlserver_.NET Core跨平台部署的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。