2014年10月7日火曜日

[IIS]既存の接続はリモート ホストに強制的に切断されました。のエラー

IISにてlocalhost設定をした時にでるエラー。


-----------------------------
ページに関連する構成データが無効であるため、要求されたページにアクセスできません。
構成データ:web.config
-----------------------------


エラーコードによるが今回は権限不足っぽい。
以下の3つを試してみる。


----最初のステップ-----

①IISの設定画面より今回の仮想ディレクトリに対する「機能ビュー」の「ディレクトリの参照」を開く。
 ⇒画面右の「ディレクトリの参照」機能を「有効」にする。

----これでダメなら-----

②使用している仮想フォルダに対する
  エクスプローラ「プロパティ」⇒「セキュリティタブ」にて
  (端末名)\IUSR_(端末名)
 ユーザを作り、
 これに対して読み取り権限を与える。

----これでダメなら-----

③使用している仮想フォルダに対する
  エクスプローラ「プロパティ」⇒「セキュリティタブ」にて
  (端末名)\everyone
 ユーザを作り、
 これに対して読み取り権限を与える。

2014年4月10日木曜日

[SQL]他テーブルを利用して更新するSQL文その3

苦手な他テーブルを使ったUPDATE文その3。続きもの。


で、3にて最終形態。観念してEXIST文を使う。

----------------------------------
①EXISTにて他テーブルでの存在をチェックしつつ
②更新内容には他テーブル(まぁ一緒なんだけど)の内容を利用するSQL文。
----------------------------------


UPDATE テーブル1
SET
 項目1 = B1.項目1,
 項目2= B1.項目2,
FROM
 テーブル2 AS B1
WHERE
  テーブル1.主キー = 1 and B1.主キー = 0
 AND
 EXISTS
 ( SELECT * FROM  テーブル2 AS B2 WHERE テーブル1.主キー = B2.主キー  )



↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
①の存在チェックはB2にてしつつ、
②の内容をとってくるのはB1にてしているという概要。
元をただせばB1もB2も同じテーブルなんだけど。

[VB.NET]Config設定を怠った時のエラー

エラー覚書。
===================================
基礎になる接続が閉じられました: 受信時に予期しないエラーが発生しました ---> System.IO.IOException: 転送接続からデータを読み取れません: 既存の接続はリモート ホストに強制的に切断されました。
===================================

===================================
[原因] 
複数のクラサバdllにて動かす際に、
config内で各dllに対するWebサービスの指定が足りない。
===================================

===================================
「うんちく」
基本的には関連するdllは
exe.config内で

'①上段あたりにて定義して
<section name="************" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=*******" requirePermission="false"/>

'②上段あたりでWebサービス定義する。
 <*************.My.MySettings>
            <setting name="****************.TEST" serializeAs="String">
                <value>http://*******************.asmx</value>
            </setting>
            <setting name="**************.KojinJoho" serializeAs="String">
                <value>http://*******************.asmx</value>
            </setting>
</***********.My.MySettings>
===================================
場合によるかもだけどこれを怠ると以下のエラーが出た。↓↓↓↓↓↓
===================================


===================================
[Value1:0][Value2:0][Value3:]System.Net.WebException: 基礎になる接続が閉じられました: 受信時に予期しないエラーが発生しました ---> System.IO.IOException: 転送接続からデータを読み取れません: 既存の接続はリモート ホストに強制的に切断されました。。 ---> System.Net.Sockets.SocketException: 既存の接続はリモート ホストに強制的に切断されました。
   場所 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)



   場所 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)


===================================


2014年4月1日火曜日

[SQL]他テーブルを利用して更新するSQL文その2

相変わらず苦手なSQL文。


①他テーブルを利用する基本の形は(SQLServerにて)
'--------------------------
UPDATE  T_テストテーブル SET 区分 = 2
FROM  T_参照テーブル AS B
where
T_テストテーブル.伝票No =  B.伝票No  AND B.区分 = 2
'--------------------------


②どうも確認する術がないので
WITH文を使って一度確認したいなら
'--------------------------
with B as (
SELECT  B2.伝票No
FROM T_参照テーブル AS B1 LEFT JOIN T_テストテーブル AS B2  ON B1.伝票No = B2.伝票No 
WHERE 
B1.区分 = 2
)
'--------------------------

で、確認してから

'--------------------------
with B as (
SELECT  B2.伝票No
FROM T_参照テーブル AS B1 LEFT JOIN T_テストテーブル AS B2  ON B1.伝票No = B2.伝票No 
WHERE 
B1.区分 = 2
)

UPDATE  T_テストテーブル
 SET     (区分 = 2)
 where T_テストテーブル.伝票No  IN (SELECT * FROM B)
'--------------------------


というか、結局は
②をやるならEXIST文使えという話になるのでした。