■Visual Studo2010
■.netFramework3.5
////////////////////////////////_/
■PjStartStatusRestApp(サービス(Iサービスを実装)とIサービスが入っているプロジェクト)
対象フレームワーク.NET Framework3.5
■restSample(Form1.cs, App.configが配置されている)
対象フレームワーク.NET Framework3.5
■/pjRestWeb(webサイトかつweb.configが配置されている)
対象フレームワーク.NET Framework4.0
webサイトと対象フレームワークを合わせても変わりませんでした。
////////////////////////////////_/
【Form1.cs】
『int result = service.PjStrSttsUpdater(mode.Text, code.Text, すsubcode.Text);』の部分で掲題のエラーが発生します。
フォームのボタンを押したらテキストボックスの文字列を取得して、DBの更新結果をラベルに表示するだけの簡単な処理なので、フォームのボタンをポチポチ連打していたら突然発生しました。
C#
1using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Linq; 7using System.Text; 8using System.Windows.Forms; 9using 【namespace】.PjStatusRestApp; 10using System.IO; 11using System.Runtime.Serialization; 12using System.ServiceModel.Activation; 13using System.ServiceModel.Web; 14using System.Web; 15using System.Diagnostics; 16 17namespace 【namespace】.restSample 18{ 19 public partial class Form1 : Form 20 { 21 public Form1() 22 { 23 InitializeComponent(); 24 this.label1.Text = "return"; 25 this.mode.Text = string.Empty; 26 this.pjsbno.Text = string.Empty; 27 this.pjcode.Text = string.Empty; 28 this.labelReslt.Text = string.Empty; 29 } 30 31 private void button1_Click(object sender, EventArgs e) 32 { 33 try 34 { 35 // 20170313 UIに記述 36 var factory = new WebChannelFactory<IPjStartApplication>(new Uri(ConfigUtil.GetSISetting("PjStartApplication.Url"))); 37 var service = factory.CreateChannel(); 38******************************ココ********************** 39 int result = service.PjStrSttsUpdater(mode.Text, code.Text, subcode.Text); 40****************************************************** 41 string resultMessage = string.Empty; 42 if (result == 200) resultMessage = "正常終了"; 43 else if (result == 400) resultMessage = "パラメータ不正"; 44 else if (result == 401) resultMessage = "申請ステータスが同じ"; 45 46 // 結果の表示 47 labelReslt.Text = resultMessage; 48 49 // ここまで 50 } 51 catch (Exception ex) 52 { 53 // エラーだった場合はイベントログに内容を出力 54 LogWriter.CreateInstance().Write(LogLevel.Error, ex.Message, ex); 55 } 56 } 57 } 58} 59
クライアント側(このフォームからテキストを送っています)
App.config
XML
1<?xml version="1.0" encoding="utf-8"?> 2<configuration> 3 <system.serviceModel> 4 <client> 5 <endpoint name="PjStartApplicationClientEndpoint" address="http://localhost:55723/【path】/PjStrSttsUpdater" binding="webHttpBinding" contract="【namespace】.PjStartApplication"/> 6 </client> 7 </system.serviceModel> 8</configuration> 9
サーバ側 web.config
XML
1<?xml version="1.0" encoding="utf-8"?> 2<configuration> 3 <system.web> 4 <compilation debug="true" targetFramework="4.0"/> 5 </system.web> 6 7 <system.serviceModel> 8 <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> 9 <services> 10 <service name="【namespace】.PjStartApplication" behaviorConfiguration="NewBehavior"> 11 <endpoint address="" behaviorConfiguration="ServiceBehavior" binding="webHttpBinding" bindingConfiguration="" contract="【namespace】.IPjStartApplication"/> 12 </service> 13 </services> 14 <behaviors> 15 <endpointBehaviors> 16 <behavior name="ServiceBehavior"> 17 <webHttp/> 18 </behavior> 19 </endpointBehaviors> 20 <serviceBehaviors> 21 <behavior name="NewBehavior"> 22 <serviceMetadata httpGetEnabled="true"/> 23 </behavior> 24 </serviceBehaviors> 25 </behaviors> 26 <bindings/> 27 </system.serviceModel> 28</configuration>
ブラウザを起動してテストしているわけではないですが、一応ブラウザのキャッシュクリアも試したのですが、ダメでした。
調べても有力な情報を見つけることができず一日詰まっております。。。
<<2017/03/17 17:09 追記>>
■Interface
C#
1namespace 【namespace】.PjStatusRestApp 2{ 3 /// <summary> 4 /// 状況更新サービス 5 /// </summary> 6 [ServiceContract] 7 public interface IPjStartApplication 8 { 9 /// <summary> 10 /// 状況更新 11 /// </summary> 12 /// <param name="PjStrSttsUpdater"></param> 13 [OperationContract] 14 [WebInvoke( 15 Method = "POST", 16 BodyStyle = WebMessageBodyStyle.Wrapped, 17 //RequestFormat = WebMessageFormat.Json, 18 //ResponseFormat = WebMessageFormat.Json, 19 UriTemplate = "PjStrSttsUpdater")] 20 int PjStrSttsUpdater(string mode, string code, string subcode); 21 22 } 23}
■サービス
C#
1namespace 【namespace】.PjStatusRestApp 2{ 3 [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] 4 public class PjStartApplication : IPjStartApplication 5 { 6 public int PjStrSttsUpdater(string mode, string code, string subcode) 7 { 8 { 9 #region 更新処理 10 using (SqlConnection cnn = "Connection取得処理") 11 { 12 string connectionString = string.Empty; 13 connectionString = "DB接続用文字列"; 14 cnn.ConnectionString = connectionString; 15 cnn.Open(); 16 SqlCommand cmd = new SqlCommand(); 17 cmd.Connection = cnn; 18 cmd.CommandType = CommandType.StoredProcedure; 19 20 cmd.CommandText = "[dbo].[PjStartStatusUpdate]"; 21 cmd.Parameters.Clear(); 22 cmd.Parameters.Add("@MODE", System.Data.SqlDbType.NVarChar).Value = mode; 23 cmd.Parameters.Add("@CODE", System.Data.SqlDbType.NVarChar).Value = code; 24 cmd.Parameters.Add("@SUBCODE", System.Data.SqlDbType.NVarChar).Value = subcode; 25 26 // Return 27 cmd.Parameters.Add("ReturnValue", System.Data.SqlDbType.Int); 28 cmd.Parameters["ReturnValue"].Direction = System.Data.ParameterDirection.ReturnValue; 29 30 // 実行 31 cmd.ExecuteNonQuery(); 32 int returnValue = (int)cmd.Parameters["ReturnValue"].Value; 33 // 戻り値の出力 34 // Debug.WriteLine(returnValue); 35 return returnValue; 36 #endregion 37 } 38 } 39 } 40 } 41} 42
回答1件
あなたの回答
tips
プレビュー