2017-10-14 52 views
3

我想執行的路線參數是​​但得到以下錯誤是屬性的路由可以在Azure的功能

「異常而執行功能:的getUser - >一個或多個錯誤 發生 - >異常綁定參數'req' - >無效從 'System.String'轉換爲'System.Guid'。「

public static async Task<HttpResponseMessage> Run(
      [HttpTrigger(AuthorizationLevel.Admin, "get", Route = "GetUser/{userId:guid}")] HttpRequestMessage req, 
      Guid userId, ILogger log) 
     { 
     } 

我想提出的請求是http://localhost:7071/api/GetUser/246fb962-604d-4699-9443-fa3fa840e9eb/

我失去了一些東西?我們不能強制路由參數是GUID嗎?

回答

5
從「System.String」到

投無效「的System.Guid」

我可以重現相同的問題時,在我身邊天青httptrigger功能使用路由約束{userId:guid},你可以嘗試open an issue到給一個反饋。

此外,如果可能,您可以嘗試撥打Guid.TryParse method將字符串轉換回功能代碼中的Guid值,以下代碼供您參考。

public static string Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "GetUser/{userId:guid}")]HttpRequestMessage req, string userId, TraceWriter log) 
{ 
    log.Info("C# HTTP trigger function processed a request."); 

    Guid newGuid; 

    var resmes = ""; 

    if (Guid.TryParse(userId, out newGuid)) 
    { 
     resmes = "userid: " + newGuid; 
    } 
    else { 
     resmes = "error"; 
    } 

    return resmes; 
}