これは、私が作成した API コントローラーの簡略化されたバージョンです。
public class SampleController : ApiController
{
[System.Web.Http.HttpGet]
public string Test(string url)
{
try
{
using (WebClient webClient = new WebClientEx())
{
return webClient.DownloadString(url);
}
}
catch (Exception ex)
{
return string.Empty;
}
}
完全に有効な URL を指定すると、「リモート名を解決できませんでした」という WebException がスローされます。
同じ URL を使用して LinqPad 内で同じメソッドを実行すると、機能します。同じ結果で WebClient と WebRequest を試しました。
明確にするために、これはルーティングの問題ではありません。どちらの方法でもコードをヒットしてステップスルーでき、関連する URL はこのアプリケーションの一部ではないからです。