IIS でホストされている WCF サービスを使用する必要がある win8 アプリを開発していますが、そうはなりません... 注: Web サービスは問題なく動作します。VS2012 の WCF テスト クライアントでテストしました。コードは次のとおりです。
IService.cs:
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
[ServiceContract]
public interface IService
{
[OperationContract]
string SitePredmeti();
[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Xml)]
List<Profesor> SiteProfesori();
}
私は2つのメソッドを作成しました.1つはxmlを返し、もう1つはjsonを返すので、どちらが機能するかをテストできます。WS が json を返すか xml を返すかは関係ありません。アプリでどちらでも作業できます。
私は変更なしでwin8のhtml5/JSアプリにデフォルトのSPLIT APP TEMPLATEを使用しています。今のところ、wcf サービスを使用する必要があるだけです。後でデータ テンプレートを処理します。
私のiisがホストするwcfへのURL:
http://localhost/InformatorWS/Service.svc
これが私がこれまでに試したことです:
var baseURl = "http://localhost/InformatorWS/Service.svc/SitePredmeti/";
var url = baseURl+Number1.value+"/"+Number2.value;
WinJS.xhr({ url: url }).then(function (r) {
var result = JSON.parse(r.responseText);
ResultSpan.innerHTML = result; });
ここで得られるエラーは次のとおりです。
{"exception":null,"error":{},"promise":{"_oncancel":null,"_nextState":null,"_state":>{"name":"error","done":null ,"then":null},"_listeners":null,"_value":{},"_isException":false,"_errorId":2},"id":2}
次に、jquery ajax経由で呼び出してみました:
$(document).ready(function () {
jQuery.support.cors = true;
//Calling WCF Service using jQuery ajax method
$.ajax({
type: "GET",
async: "false",
url: "http://localhost/InformatorWS/Service.svc/SitePredmeti",
contentType: "application/json; charset=utf-8",
dataType: "json",
processData: true,
success: function (result) {
//AjaxSucceeded(result);
alert('ok')
},
error: alert('ne ok')
});
});
そしてjqueryをリンクすると
<script type="text/javascript" src="js/jquery-ui-1.8.9.custom.min.js"></script>
<script type="text/javascript" src="js/jquery-1.4.3.js"></script>
私は3つの例外があります:
ms-appx://66b782f9-8814-4b8e-a2e3-d6e73893690a/js/jquery-ui-1.8.9.custom.min.js 0x800a1391 の行 10、列 2 で未処理の例外 - JavaScript ランタイム エラー: 'jQuery' は未定義
(およびこれらのうちの 2 つ - 成功とエラーの 2 つのアラート)
ms-appx://66b782f9-8814-4b8e-a2e3-d6e73893690a/js/default.js 0x800a1391 の 8 行目、9 列目の未処理の例外 - JavaScript ランタイム エラー: 'アラート' は未定義です
誰かが私が間違っていることを知っていますか? または、IIS でホストされている WCF サービスを使用する方法を知っている人はいますか?
事前にどうもありがとうございました。