[英]Why does my C# API work fine on the server but it always fails when I try to call it from any other client machine?
我有一個 C# API,它將 Excel 工作表(文件路徑,工作表名稱)作為輸入,並將工作表內容作為 JSON 表單中的 output 返回。 當我嘗試在安裝了 windows 服務器 2016 的機器上測試它時,API 工作正常。 但是當我嘗試從表單發送文件路徑和工作表名稱時,它總是失敗。 這是我的 API 代碼...
public IHttpActionResult GetSheetData(string filePath, string sheetName)
{
try
{
var connectionString = $@"
Provider=Microsoft.ACE.OLEDB.12.0;
Data Source={filePath};
Extended Properties=""Excel 12.0 Xml;HDR=YES""";
using (var conn = new OleDbConnection(connectionString))
{
conn.Open();
var cmd = conn.CreateCommand();
cmd.CommandText = $@"SELECT * FROM [{sheetName}$]";
using (var DRow = cmd.ExecuteReader())
{
var query = DRow.Cast<DbDataRecord>().Select(row => new
{
name = row[0],
age = row[1],
email = row[2]
});
var JSON = JsonConvert.SerializeObject(query);
return Ok(JSON);
}
}
}
catch (Exception) { return Ok(HttpStatusCode.NotFound); };
}
當我在服務器上測試 API 時,JSON 結果完美返回,但是當我嘗試使用這種形式測試它時.. 它總是返回 404(未找到)。
有任何想法嗎?!
我找到了解決我的問題的方法,我想與您分享。
問題全都與 IIS 的訪問權限有關。當我嘗試訪問本地計算機或客戶端計算機上的文件時,IIS 應用程序池必須對該位置具有訪問權限。 所以,我使用了以下步驟。
我希望這對你有幫助。 謝謝你們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.