ホーム » ASP.NET
「ASP.NET」カテゴリーアーカイブ
ASP.NETのWebAPIをサーバーに配置したらエラー
Windows2008R2で稼動しているASP.NETで作成したWebサービスをWindows2012R2に配置したら以下のエラーが発生。
原因は.NET Frameworkのバージョンととweb.config
WEBサービスは.NET Framework3.5
Windows2008R2ではasp.net2.0で動作
※.Net Framework 3.5はasp.net2.0対応
Windows2012R2ではasp.net4.0で動作させていた
.NET Framework3.5の環境で作成されたWebサービスのweb.configの一部のエントリがmachine.configと重複するため削除する必要がある。
.NETで作成したWebサービスをjqueryのajaxで呼んだら500サーバー内部エラー
jquery ajaxで .NET Webサービスからデータダウンロード時にデータ量が多くなると500 サーバー内部エラーが発生。(通信はJSONフォーマット)
DHCで確認したところ
以下のエラーが発生
[code]
{"Message":"JSON JavaScriptSerializer を使用したシリアル化または逆シリアル化中にエラーが発生しました。文字列の長さが maxJsonLength プロパティで設定されている値を超えています。","StackTrace":" 場所 System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, StringBuilder output, SerializationFormat serializationFormat)\r\n 場所 System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, SerializationFormat serializationFormat)\r\n 場所 System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)\r\n 場所 System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"}
[/code]
web.configに以下を追加して対応
VS2010でWebサービス(asmx)を実装
VS2008やVS2005で作成していたWebサービス(asmx)をVS2010でも作成できたのでメモ。
最終的にはJSON対応としたい。
参考サイト(というか、そのまんま)[VS2010] ASP.NET Web サービス プロジェクト (.asmx) はどこへ?
(1)VS2010でプロジェクト「ASP.NET Webアプリケーション」を作成。
(2)プロジェクト内にディレクトリServicesを作成
(3)ディレクトリServicesにWebサービス(asmx)を追加
Mapapi.asmx
namespace部分を削除
[code]
public class MapApi : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
[/code]
(4)Mapapi.asmxの編集
Mapapi.asmxを右クリックして「マークアップの」表示を選択し、修正
修正前
[code]
<%@ WebService Language="C#" CodeBehind="MapApi.asmx.cs" Class="KnlApi.Services.MapApi" %>
[/code]
修正後
[code]
<%@ WebService Language="C#" CodeBehind="MapApi.asmx.cs" Class="MapApi" %>
[/code]
(5)発行
ビルドメニューの発行を選択して画面に従って設定
画面上の発行ボタンをクリックして配置用のモジュールを作成
(6)Webサーバー上への配置
Webサーバー上にIISユーザーがアクセス可能なフォルダを作成してIIS管理マネージャーでプリケーションに設定
発行したモジュールを置いて完了