Iwao Dev

気付いたことをメモしています.

この画面は、簡易表示です

ASP

IIS での ActiveX.exe

次の様なコードで,環境により?サーバの exe が終了されないことがある.
  dim oHV
  set oHV = Server.CreateObject(“AsHVXxx.Application”)
  Response.Write “AsHV….App ” & oHV.GetVersion & “<br>” & vbCrLf
  set oHV = Nothing
AsHVxx.exe   ~.Application のみ
  Win XP , 7 とも正しく終了する.
PAtoXx.exe
  Win XP 環境で,デバッグ版 exe は OK .
  Win 7 では正しく終了している.


2015/02/19
PAtoXx.exe の OnInitDialog で,環境設定用のダイアログが表示されて止まってしまっていた.
で,単純にメッセージボックスなどを表示しているならばすぐわかったはずだが,…
  普通の exe としての起動の場合は,ダイアログは表示されない.
  ASP のオートメーションとして起動された場合は,見えないがダイアログが表示されて止まっている.
ダイアログが表示される条件は,設定値が正しいフォルダをさしていない場合.
  c:\ProgramData\… の様にローカルをさしている場合は,どちらの起動でもダイアログが表示されないで処理を継続.
  \\T54W7U64\Documents\… の場合,当然であるが単純起動の exe では OK でダイアログは表示されない.
  これが ASP から起動されると _taccess で正しく判断できず,ダイアログが表示されて止まっている.
CFile::GetStatus でもうまく判断できない?


2015/02/24
MFC クラスウィザードからの「クラスの新規作成」で 「CCmdTarget」 「タイプ ID で作成」したものも終了されない?
利用している所は次の様な感じ.
  set oM_P_ = Server.CreateObject(“AsXxxxX.Path”)
デフォルトで作成されている ~.Application を利用することで終了できる.
  set oM_S_ = Server.CreateObject(“AsXxxxx.Application”)
この動作は,vbs でも同様に確認できる.


2015/03/05
AsXxxS.exe を修正していて Win 7 環境で,
  Server オブジェクト エラー ‘ASP 0177 : 80080005’
  Server.CreateObject に失敗しました
  /Test/Test_3rd/D_Path_1.asp, 行 7
  80080005
XP 環境では OK .
設定関連の漏れがあると思うが,それまで通っていたのでコードを変更.
  以下が新しく追加した部分
   {
     #if defined _UNICODE
       folder = ::FolderAddLastSP(folder) + _T(“WC”) ;
     #elif defined _MBCS
       folder = ::FolderAddLastSP(folder) + _T(“MB”) ;
     #endif
   // ::CreateFolder(folder) ;
     if (::FolderIsNothing(folder)) {
       if (::CreateDirectory(folder,NULL)) { folder = folder+_T(“\\”) ; }
       }
     }
  最初 CreateFolder としていた所を,CreateDirectory に変更することで対応.
この関数は,デバッグ情報をファイルに出力しているが,Win 7 環境ではファイルが生成されてない.


%Temp% (c:\Windows\Temp) 以下に AsImgCnv….\EMF などのフォルダを作成して,生成した emf を保持している.
綺麗な状態に戻そうとして,EMF フォルダを削除して実行すると,
   エラー ‘80010105’
  /Test/Test_2nd/CallAS/E/SelectPage.asp, 行 148
AsImgConv… フォルダのアクセス権を変更してしまった事が原因か?
どの様に設定すべきかわからず,AsImgCnv… フォルダをエクスプローラで削除して対応.


もう一回,うまく行っている状態で EMF フォルダを削除.
どうも設定ではなくコードが悪いみたいで,影響していそうな所を見てみると,
  CacheFile::GetFolder で ::CreateFolder を呼んでいる.
::CreateFolder を MFC を使用していない ::Folder_Create に置換えてみた.
  停止(’ASP 0177 : 80080005’)することはなくなったが,まだ何かありそう.
  EMF のフォルダが生成されない.


2015/03/10
結局,%Temp% は利用しない様に変更した.
どういう条件かわからないが,c:\Windows\Temp\DbgDump\ にはデバッグ情報が正しく出力されてなかった.
(Win XP では意図した動作だったと思う)


2015/03/30
%Temp% でなく Public\Documents\ 以下にしたが,それだけでは完全ではなさそう.
アクセス権の関係と思うが,パブリックフォルダの共有設定が必要?



  にほんブログ村 IT技術ブログへ


この要求の処理に必要なリソースの解析中に…

プログラミング Visual C++.NET の Ex34a で,


‘/’ アプリケーションでサーバー エラーが発生しました。


パーサー エラー
説明: この要求の処理に必要なリソースの解析中にエラーが発生しました。以下の解析エラーの詳細を確認し、ソースファイルに変更を加えてください。
パーサー エラー メッセージ: 型 ‘Ex34a.ManagedCPPPage’ を読み込めませんでした。
ソース エラー:

行 1:  <%@ Page Language="c#" Inherits="Ex34a.ManagedCPPPage" %>
行 2:  <html>
行 3:  <body>

ソース ファイル: /Test/ASP_net/Ex34a.aspx   
行: 1


バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.3649; ASP.NET バージョン:2.0.50727.3634


「インターネット インフォメーション サービス」を起動.
対象のフォルダ(ここでは Test/ASP_net )を選択して,「右クリック」-「プロパティ」.
「ディレクトリ」タブの真ん中あたり,「アプリケーションの設定」で「作成」する.
http://iwaoalles.wordpress.com/2010/01/29/構成にエラーがあります/



  にほんブログ村 IT技術ブログへ


ASP.NET Web

Visual Studio .NET スタートブック を読みながら,ASP.NET Web サービスをテスト(使用した VS は 2005 ).


新規プロジェクトで出来上がった,Service1.asmx.vb の
<WebMethod()> Public Function HelloWOrld() … End Function  の次に,以下を追加.
  <WebMethod()> Public Function CalcSvc(ByVal x As Integer, ByVal y As Integer) As Integer
    Return x + y
  End Function
実行も本の通り.
同様に,Service1.asmx.cs では
  [WebMethod]
  public string HelloWorld() {
    return “Hello World”;
  }
  [WebMethod]
  public int CalcSvcCS(int x ,int y) {
    return x + y ;
  }


今度は C++ .
面倒だったので CalcCPPClass.h のみに.
  [System::Web::Services::WebMethod]
  String ^HelloWorld();
  [System::Web::Services::WebMethod]
  int CalcSvcCPP(int x,int y) { return x+y ; }
ソリューションに複数のプロジェクトとしていたので,どこかの設定が違うのか VS から直接の起動が出来ない.
ブラウザで //localhast/~/~.asmx を指定すれば期待した動作となる.



  にほんブログ村 IT技術ブログへ


PAtoMHD.AsPln2D を …

PAtoMHD.AsPln2D を IIS のコンポーネントとして登録.
DrawVer.asp
  <%@ Language=VBScript %>
  <% Option Explicit %>
  <HTML>
  <BODY>
  <%
  dim oToPA
  set oToPA = Server.CreateObject(“PAtoMHD.AsPln2D”)
  Response.Write oToPA.GetVersion
  set oToPA = Nothing
  %>
  </BODY>
  </HTML>


実行すると,
エラー タイプ
Server オブジェクト, ASP 0178 (0x80070005)
許可を確認中に Server.CreateObject の呼び出しに失敗しました。このオブジェクトへのアクセスは拒否されます。
/Test/DrawVer.asp, line 7

「コンポーネント サービス」-「DCOM の構成」で「セキュリティ」タブ内の設定.

IIS を再起動する


以下の様にしていると
  set oMICS = Server.CreateObject(“AsMicsS.Application”)
  set oToPA = Server.CreateObject(“PAtoMHD.AsPln2D”)
PAtoMHD.exe は IUSR_DEVXP となるが,AsMicsS.exe は SYSTEM でリフレッシュ毎に起動されてしまっている.

どうも,PAtoMHD.Application などの場合に複数起動されているみたい.
IUSR_~ と SYSTEM の違いはよくわからない.



  にほんブログ村 IT技術ブログへ


CHttpFile を利用した読込みで,…

CHttpFile を利用した読込みで,接続されていなくても ReadString でそれなりに戻ってくることがあった?

以下は,あるサイトが応答しているかどうかを確認するコードの断片.
  #define W_M_P_C_ _T(“http://www.??????.com/”)
  CString rData ;
  if (!canConnectWeb && InetFile::Read(W_M_P_C_,rData)) {
    if (rData.Find(K_M_P_C_) > 0) { canConnectWeb = TRUE ; }
    connectdSite = W_M_P_C_ ;
    }

アクセスする url に,ダブらないような情報を付加することで回避.
  CString para = _T(“?_q_=”) + ::ToString(::GetTickCount()) ;
  if (!canConnectWeb && InetFile::Read(W_M_P_C_+para,rData)) {
    if (rData.Find(K_M_P_C_) > 0) { canConnectWeb = TRUE ; }
    connectdSite = W_M_P_C_ ;
    }



  にほんブログ村 IT技術ブログへ


ASP 関係続き...

ログ
 AsFile.FileSys.Log(LPCTSTR message) { return ::LogMessage(message) ; }

TempFile
 AsFile.FileSys.GetDirTemp() + “TempFile.txt”
  logData = oFSys.TextFileRead(logFile)
  logData = logData & Now & vbTab & “LogData” & vbCrLf
  oFSys.TextFileWrite logFile,logData



  にほんブログ村 IT技術ブログへ


しばらく使ってなかったので,…

並び替え
  ”SELECT * FROM Table_H_T_M_ ORDER BY U_1,U_2 ;”
  ”SELECT * FROM Table_H_T_M_ ORDER BY T_New,U_1,U_2 ;”
  ”SELECT * FROM Table_H_T_M_ ORDER BY T_Max,U_1,U_2 ;”
  ”SELECT * FROM Table_H_T_M_ ORDER BY H_No,U_1,N_ ;”

今回やりたいのは抽出なので WHERE
  ”SELECT * FROM Table_H_T_M_ WHERE H_No < 'M1000' ORDER BY H_No,U_1,N_ ;"
  "SELECT * FROM Table_H_T_M_ WHERE H_No LIKE ‘M0%’ ORDER BY H_No,U_1,N_ ;"

RecodeCount が -1 で返される
  デフォルトのカーソル adOpenForwardOnly
  ADO Recordset で RecordCount プロパティが -1 を返す場合
  oRS.CursorLocation = 3 ‘ adUseClient などとすれば良い
  または,oRS.Open source , connection , 3

全レコードの読み取り
  dim oRS
  set oRS = Server.CreateObject(“ADODB.recordset”)
  oRS.Open “Table” , “DSN=name”
  oRS.MoveFirst
  do while not oRS.EOF
    …
    oRS.MoveNext
  loop
  …
  oRS.Close

ASP の中止
  Response.End



  にほんブログ村 IT技術ブログへ


“Web サーバーでデバッグを開始できません”

プロジェクトを実行しようとしているときにエラーが発生しました :Web サーバーでデバッグを開始できません。 
次回からこのプロジェクトの ASP.NET ページのデバッグを無効にしますか?

[PRB] ASP.NET Web アプリケーションをデバッグできない
http://support.microsoft.com/kb/318465/
[INFO] Visual Studio .NET で ASP.NET アプリケーションをデバッグするときの一般的なエラー
http://support.microsoft.com/kb/306172/ja

[PRB] ASP.NET アプリケーションのデバッグ時にエラー メッセージ "Web サーバーでデバッグを開始できません" が表示される
http://support.microsoft.com/kb/306165/

 


  にほんブログ村 IT技術ブログへ

  • Categories:

“実行ディレクトリにコピーできません”

—— ビルド開始 : プロジェクト : Sample1, 構成 : Debug .NET ——
リソースを準備しています…
参照を更新しています…
メイン コンパイルを実行しています…
サテライト アセンブリをビルドしています…
ファイル ‘binSample1.dll’ を実行ディレクトリにコピーできません。要求された操作はユーザー マップ セクションで開いたファイルでは実行できません。
一時ファイルを出力ディレクトリにコピーできませんでした。
———————- 終了 ———————-
    ビルド : 0 正常終了、1 失敗、0 スキップ

開いている Sample1.dll を閉じる.

 


  にほんブログ村 IT技術ブログへ

  • Categories:

“IIS メタベースにアクセスできませんでした”

‘/…/WebSite1’ アプリケーションでサーバー エラーが発生しました。


IIS メタベースにアクセスできませんでした。
説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。
エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。
例外の詳細: System.Web.Hosting.HostingEnvironmentException: IIS メタベースにアクセスできませんでした。
ASP.NET を実行するのに使用されるプロセス アカウントには IIS メタベース (例: IIS://サーバー名/W3SVC) への読み取りアクセスが必要です。
メタベースのアクセス許可の変更に関する詳細は、
http://support.microsoft.com/?kbid=267904 を参照してください。

C:WindowsMicrosoft.NETFrameworkv2.0.50727aspnet_regiis.exe -u
C:WindowsMicrosoft.NETFrameworkv2.0.50727aspnet_regiis.exe -i



  にほんブログ村 IT技術ブログへ

  • Categories:


    top

    %d人のブロガーが「いいね」をつけました。