ホーム » 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で確認したところ

clip_3

以下のエラーが発生

[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に以下を追加して対応

clip_7

VS2010でWebサービス(asmx)を実装

VS2008やVS2005で作成していたWebサービス(asmx)をVS2010でも作成できたのでメモ。
最終的にはJSON対応としたい。

参考サイト(というか、そのまんま)[VS2010] ASP.NET Web サービス プロジェクト (.asmx) はどこへ?

(1)VS2010でプロジェクト「ASP.NET Webアプリケーション」を作成。

スクリーンショット 2016-12-14 17.44.43

(2)プロジェクト内にディレクトリServicesを作成

スクリーンショット 2016-12-14 17.46.51

(3)ディレクトリServicesにWebサービス(asmx)を追加

ファイル名はMapapi.asmx
スクリーンショット 2016-12-14 18.10.33

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)発行

ビルドメニューの発行を選択して画面に従って設定

スクリーンショット 2016-12-14 20.36.23

画面上の発行ボタンをクリックして配置用のモジュールを作成

clip_4

(6)Webサーバー上への配置

Webサーバー上にIISユーザーがアクセス可能なフォルダを作成してIIS管理マネージャーでプリケーションに設定

発行したモジュールを置いて完了

clip_6