だから私は奇妙な問題を抱えています。私は MVC4 で C# を使用しています。匿名認証をオフにし、ドメイン認証をオンにしました。この問題は、ローカル システム (デバッグにローカル IIS を使用) とリモート サーバーで発生します。通常の状況では、認証は両方のシステムで自動的かつ適切に機能します。
try-catch ブロック内で StringBuilder オブジェクトを使用する 2 つの C# MVC4 アプリケーション (.NET 4.5) があります。両方のアプリケーションで、1 つは try ブロックを使用し、もう 1 つは catch で、StringBuilder が参照されている場合、システムはドメイン資格情報の入力を求め、私の資格情報を除外せず、最終的にあきらめて次のエラーで失敗することに注意しました。
0: error
12030 -- connection error or connection reset
12031 -- connection error or connection reset
検索エンジンは、エラーに関するもう少し詳しい情報を明らかにします:
ERROR_WINHTTP_CONNECTION_ERROR 12030サーバーとの接続がリセットまたは終了されたか、互換性のない SSL プロトコルが検出されました。たとえば、クライアントが明示的に有効にしない限り、WinHTTP バージョン 5.1 は SSL2 をサポートしません。
エラー コード 12031 サーバーへの FTP 接続がリセットされました.. 接続できませんでした。
これらのどれも実際に私の問題を特定しておらず、実際の問題よりも許可の問題に関連しているようです。また、これらのエラーは説明的なエラーを上書きするため、クライアントで実際に見たい実際のエラーが失われます。
通常のドメイン アカウントと、より高度なドメイン管理者アカウントでこれを試しました。どちらも機能しません。この例では、Telerik の新しいベータ スケジューラ コントロールを使用していますが、これは別の Telerik プロジェクトで行われます。ただし、この問題は、Telerik で何かを行うことには関係ありません。
ドメイン認証を使用すると、この例でも認証を求めるプロンプトが表示されます。
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
return View();
}
}
public ActionResult someAjax()
{
try
{
throwAnError();
}
catch (Exception e)
{
string msg = returnErrorMsg(e);
return new HttpStatusCodeResult(
System.Net.HttpStatusCode.InternalServerError, msg);
}
return Json("I sent a valid value");
}
string throwAnError()
{
throw new Exception("Something bad happened");
}
string returnErrorMsg(Exception exc)
{
//return exc.Message; // this doesn't prompt for credentials.
StringBuilder sbError = new StringBuilder();
sbError.AppendLine(exc.Message);
return sbError.ToString();
}
}
Index.cshtml ファイル (別の場所に jquery と Index.js を含めました):
<button id="clickBtn">My Button</button>
<div id="value"></div>
インデックス.js:
$("#clickBtn").click(function () {
$.ajax({
url: '/Home/someAjax',
success: function (data) {
$("#value").text(data);
},
contentType: 'application/json'
})
.error(function (textStatus, errorThrown) {
$("#value").text(textStatus);
});
});