2017-07-27 58 views
0

操作系統:Linux,CentOS的 代理服務器:Apache的 Asp.NET核心1.1ASP.NET核心:在數據庫連接問題(SQLite的)生產

問題:我得到了某一時刻與我的應用程序時,我決定將其部署在真實的服務器上。

因此,一切工作,並在我的本地機器上完美地工作。我沒有問題。

但是當我發佈它並上傳到服務器時,它不能按照我的預期工作。我特指數據庫(SQLite)。 應用程序從數據庫中讀取數據,因爲它應該是,但每當我的代碼中存在_db.SaveChangesAsync()時,應用程序就會崩潰。

我在互聯網上搜索過,沒有任何東西可以幫助我。

到目前爲止,我有3個不同的例外:

  1. SQLite的錯誤8:「嘗試寫入只讀數據庫」。

  2. 我改變了數據庫文件的權限777以及它自己的文件夾,沒有幫助。

得到了: SQLite錯誤14:'無法打開數據庫文件'。

  • 當我試圖添加此配置:

    app.UseForwardedHeaders(新ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto });

  • 得到這個豁免: 警告:X-轉發-For和X - 轉發,原之間Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersMiddleware [1] 參數數量不匹配。

    連接字符串是:

    「DefaultConnection」: 「數據源= GlobalEvent.db」

    回答

    0

    的問題是在錯誤的反向代理設置。我找不到Apache的正確解決方案,所以我將它改爲Nginx。說實話我其實更喜歡它。現在一切正常。另外,我爲子域創建了Nginx服務器塊。上面的其他一切仍然適用。

    這裏是ASP.NET核心應用我的conf文件:

    server { 
        listen 80; 
        root /var/www/subdomain.domain.com/html; 
        server_name subdomain.domain.com www.subdomain.domain.com; 
        location/{ 
          proxy_pass http://localhost:5000; 
          proxy_http_version 1.1; 
          proxy_set_header Upgrade $http_upgrade; 
          proxy_set_header Connection keep-alive; 
          proxy_set_header Host $host; 
          proxy_cache_bypass $http_upgrade; 
         } 
    }