トップページphp
983コメント353KB

【質問】 ASP.NETスレ 【議論】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/12/24 11:51ID:POToTPwm
ないので立ててみますた。
議論・質問、いろいろしてください。
0453nobodyさん03/12/08 23:46ID:ys/JRxLe
>>452
Displayプロパティを設定しろ。
0454nobodyさん03/12/09 00:26ID:???
動的クエリを作り、DBからDataSetを取得するメソッドを作っているのですが、やはり
クエリを直接組み立てて投げるより、CommandとParameterを使ったほうがよいの
でしょうか?
いまいち利点・欠点がわかりません。どなたか教えて下さいませ。
0455nobodyさん03/12/09 20:54ID:???
VisualStudio.NETでASP.NETを作るのは意外と作りづらいから
いまだにテキストエディタでASP.NETを作ってしまう。
0456nobodyさん03/12/09 21:09ID:B03No+om
>>454
俺は、DataGridとかを使いたい時だけDataSetを使ってるよ。
それ以外は、DataReaderでつ。
0457nobodyさん03/12/10 22:22ID:lbxiriKY
DataGrid使うとViewStateが大量になるんだけど、
全部Sessionに納める方法ないですか?
0458nobodyさん03/12/11 01:27ID:???
EnableViewState = false
0459nobodyさん03/12/12 01:09ID:PtQbRQAi
>>458
それだとViewStateが効かなくなるだけジャン。
そじゃなくて、自動で作られるViewState丸ごと全部Sessionに入れる方法ないかなーって。
0460nobodyさん03/12/12 01:54ID:???
ViewStateが大量になるのを回避するのはEnableViewState = falseしか無いだろ。
毎回Bindするくらい思いつかんかな。
0461nobodyさん03/12/12 09:31ID:kWO0Ov2D
>>459
LoadViewStateとSaveViewStateをoverrideして、
自力でセッションにしまえ。
0462nobodyさん03/12/12 20:47ID:Qv7hGBo7
>>460
やだ。

>>461
やっぱ自前しかないのか…ん、了解した。
0463noby落合さん03/12/19 14:38ID:7jWGvjMy
ASP.net

ページの更新を
強制的にする
refreshメソッド
みたいのは
無いのかね?

わからん
0464nobodyさん03/12/20 00:34ID:Qoxa2fJv
>>463
ASP.NETより先に、
HTML + JavaScriptを勉強するべし。
0465nobodyさん03/12/20 13:48ID:???
>>463
クライアントとサーバの仕事をきちんと分けて考えるべし。
0466nobodyさん03/12/26 05:16ID:tWTQxk22
非常に初歩的な話でお恥ずかしいのですが、全く分からないのでご質問です。
ASP.NET+VB.netです。

http://hogehoge.co.jp/ppp.cgi

へ値(1241等の数値)を送りたいのですが、どのようにすればよいのでしょうか?
実際には

Dim myRequest As System.Net.WebRequest = System.Net.WebRequest.Create("http://hogehoge.co.jp/ppp.cgi?s=1241")
myRequest.Method = "POST"
Dim myResponse As System.Net.WebResponse = myRequest.GetResponse()
myResponse.Close()

↑は確実に全然違うと思いますが、右上の「1241」の数値を相手のCGIへ送りたいのです。
どなたかよろしくお願い致します。
0467nobodyさん03/12/28 14:29ID:bmoUSGC5
>>466
Server.Transfer("http://hogehoge.co.jp/ppp.cgi?ID=1241")
で受けるページで
Request.QueryString("ID")
とかじゃダメなの?
0468nobodyさん03/12/29 13:14ID:L7Pmc2fe
>>467
ありがとうございます。上記のServer.Transferは相手がASPでなくとも
動作するんでしょうか?Googleで調べたんですが、送信側がASPで受信側
もASPでないと動作しないみたいな事を記載していたんですが・・・

1241を受け取る側はまた全く別の他者のサーバであり、受信側はASPでは
ないのですが・・・ そこの所どうなんでしょうか・・
0469nobodyさん03/12/29 20:45ID:K1y1nZBY
>>468
それでは、普通のHTMLページを作成して、そこからリンクするとか…

http://www.rfs.co.jp/sitebuilder/perl/03/02.html

などを参照。
この話題はCGI, Perl スレの方が明確な回答してくれるんじゃないの?
0470nobodyさん03/12/29 21:30ID:???
ASPじゃないからと言って、Perlとは限らないと思うが
0471nobodyさん03/12/30 02:19ID:???
>>469
紙 いや神 普通のHTMLを作成してリンク。恥ずかしながら、そこに
全く頭が行きませんでした。冷静に考えればわかるのに・・・
お恥ずかしい。HTMLから飛ばす事で解決致しました。
ASPXにこだわったのが頭が回らない原因でした。ありがとうございました。
0472nobodyさん04/01/03 18:11ID:ISiFJ2md
ASP.NET で使いやすい Tab コントロールってないでしょうか?
Microsoft の IE Web control 取ってきたのですが
マルチページとセットで使う必要があるらしく
も一つ 馴染めません
0473nobodyさん04/01/04 00:27ID:Rcx7J6XY
>>472
グレープシティにあるかもよ。
0474nobodyさん04/01/14 21:29ID:???
ASP.NETでJScript使ってる人間って何人いるのかなぁ?

自分はプログラマじゃないんでJavaScript以外の言語が
さっぱりわからないからJScript.NET使ってるんだけど…

そもそもASP.NETを使ってるのもPerlやPHPを覚えるのが
面倒だからなんだけど他にこういう人っている?

正直、JScript.NETはもっとC#に近づけて欲しかった。
型変換やら、includeじゃなくてusingにするとかさ。
C#のサンプルをいちいち書き換えたりするのも面倒
0475nobodyさん04/01/15 01:00ID:???
JScript.NETからだったらC#へのステップアップも簡単だと思うけど。
0476nobodyさん04/01/19 22:26ID:HveRcKPT
ASP.NET(+VB.NET)で質問があります。

参照設定で追加したDLLを使おうとしたのですが、

「この ASP.NET プロセスは、要求されたリソースへのアクセスを許可されていません。
セキュリティ上の理由により、既定の ASP.NET プロセスは、'{コンピュータ名}\ASPNET' に
設定されており、限定された権限しか与えられていません。」

というエラーが出ました。
いろいろ調べて、machine.configのprocessModel要素に手を加えれば
とりあえずは動くかなと思い、

<processModel enable="true" userName="SYSTEM" password="AutoGenerate"/>

としたのですが、上記とまったく同じエラーが出たままです。
理由がぜんぜんわかりません。
どなたかご教授いただけないでしょうか。
0477nobodyさん04/01/19 22:54ID:dx+3u7s1
>>476
DLLの方のセキュリティ設定を変更するべし。
0478nobodyさん04/01/19 23:24ID:HveRcKPT
>>477
レスありがとうございます。
さらに調べていたところ、machine.config内のidentity要素を
<identity impersonate="true"/>としたところ、うまくいきました。
どうもお騒がせしました。
0479nobodyさん04/01/20 10:07ID:VB3GPFn8
質問させていただきます。
C#でWEBコントロールのボタンを押した時と同じイベントを
テーブルのTDに対してonclickした時に起こしたいのですが
どのようなコードでできますでしょうか。
onclickにsubmitを書くとページ内の検証コントロールのエラー
の有無に関わらず送信されてしまってまずいです。
同じようなことをした方など教えてもらえないでしょうか。
0480nobodyさん04/01/21 11:43ID:7+8fMx96
初歩的な質問で申し訳ないのですが、ASP.NET(VB.NET)で質問です。

ボタンコントロールをページに貼り付けて実行後、ボタンを押すと、
特にボタンについての記述をしていなくてもページがリロードされて
しまうようなのですが、これはリロードしないように出来るのでしょうか?
0481nobodyさん04/01/21 21:51ID:???
>480
できると思うよ。
調べてみなよ。
0482nobodyさん04/01/22 11:22ID:???
>>480
Submitボタンではなくただのbuttonをつかえばそのボタンにonclickイベントを書かない限りページの再読み込みは起こらない。
0483nobodyさん04/01/23 00:18ID:Hnn7dqj9
VB.NETで、CheckBoxListを配置してPage LoadのAttributesで
OnClick="alert('AAA')"ってなるように書くと
チェックボックス上でクリックしたときは1回しか動かないけど、
ラベル上でクリックすると2回動くのはどうすりゃ直るの?
0484nobodyさん04/01/31 09:45ID:???
ASPの本は
ASP組み込みオブジェクト
ADO
ファイルシステムオブジェクト
拡張コンポーネント、ActiveXコントロール
という構成が主流だったのに
ASP.NETの本でこんな感じの本てないよね。
0485nobodyさん04/01/31 10:14ID:???
.NETなら大抵のActiveXやらは使う必要なかったし
0486nobodyさん04/02/03 00:41ID:mOi+OC+m
初歩的ですが、
ラベルを貼って、WIDTH="100"にして、
IE、NNとWIDTHが違うのはなぜ?
幅を同じにしたいんだけど、どうすればいいの?
違うコントロールつかうのですか?
0487nobodyさん04/02/03 07:02ID:???
>486
ASP.NETの問題じゃないので、Web製作板へどうぞ。
HTMLで書いても同じようにズレます。
0488nobodyさん04/02/03 13:11ID:Vanzb1l/
上司とか客先にASP.NETでこんな事できますってのを見せたいのですが

ASP.NET で作られているサイトってどこかあるでしょうか?
0489nobodyさん04/02/03 20:10ID:???
>>488
MicroSoft
0490nobodyさん04/02/04 00:25ID:???
企業じゃセガダイレクトってのもASPXだな

外見から判断できるようなASP.NETならではなことを
やってるところってそうそうあるとは思えないけど…
0491nobodyさん04/02/04 02:29ID:???
ここも。
http://www.users.gr.jp/
0492nobodyさん04/02/04 07:52ID:???
msnもそう?
armxって何?
0493nobodyさん04/02/05 22:02ID:eJFmv532
Web参照の追加がうまくいきません。
アドレスをいれ検索しても、Webサービス
なしと表示されます。私だけでしょうか?
0494 ◆6xDVx0Rus. 04/02/07 22:36ID:???
>>488
SoftEtherの公式ページも *.aspx だったような。


ところで、今 WhidbeyでASP.NETを試してるのですが、
System.Web.UI.WebControls.Login クラスを使用した
ログインで、ユーザ情報を AspnetDB.mdbじゃなくて、
web.config の <credencial>-<user> から取得したいのですが、
可能でしょうか?

可能であれば、やり方をお教えいただければ幸いです。
0495nobodyさん04/02/09 22:52ID:???
地味に生き残ってるなぁ。

ASP.NETであぷろだ作るのはやめた方がいいよ。泣くから。
0496nobodyさん04/02/10 01:09ID:???
>>495
意味不明。もっと詳しく。
0497nobodyさん04/02/11 22:31ID:TkUicFeq
質問なのですが、

System.IO.Stream e = System.IO.File.OpenRead(クライアントPCのEXCELファイルのパス);
Response.ContentType= "application/x-binary";
Response.AddHeader("Content-Disposition","Attachment; filename=Book1.xls");
byte[] buf = new byte[e.Length];
e.Read(buf,0,buf.Length);
Response.BinaryWrite(buf);
e.Close();
Response.End();

こんな感じで既存のexcelファイルを表示してるんですが、
winXPやwin2003serverでこの動作をすると(win2000では動作確認済み)、
ファイルのダウンロードダイアログの"開く"ボタン押した後に
「C:\Documents and Settings\ユーザー名\Local Settings\Temporary InternetFiles
\Content.IE5\xxxx\AAA.txt[1]が見つかりません」
というエラーが出てファイルが開けない状態になってしまいます。
何か上手い回避策などはあるでしょうか?
049849704/02/13 21:13ID:???
自己レス

先頭に 
Response.ClearHeaders();
を追加したらエラーが出なくなりました。
0499nobodyさん04/02/14 02:13ID:???
ヘッダーを書き換えれば、ブラウザでそのままエクセルを開けるよ。
手元にデータがないから確認できないが、検索で見つけたものだから
頑張って探せばどこかで見つかるよ。
0500nobodyさん04/02/26 00:05ID:???
500ゲット!

WebMatrixってパスポート入らにゃならんのか!
MSDE(へぼいDBエンジン)って何ができるの?
0501nobodyさん04/02/26 00:30ID:???
Trasaction-SQL
0502nobodyさん04/02/26 15:42ID:uqbd75Hw
>>500

あら、Web Matrixって日本語版でてたんだ。
ということであげ。

ttp://www.microsoft.com/japan/msdn/asp.net/webmatrix/
0503nobodyさん04/02/26 22:50ID:???
>500

MSDEってそれほどへぼくないと思うが・・・
Jetよりはまし
0504nobodyさん04/02/26 23:30ID:???
日本語版はプログラム板のC#スレにアドレスがズバリ貼ってあったよ。

>>500
Oracleでも使ってんのか?
050550004/02/27 17:37ID:???
>>504
いや、ただで落とせるって書いてあったからヘボいのかな?と。
後で調べたら、「MS的に広めたくない」って感じなのかなと思いました。

これを使えば、DBManagerプロセスとDBクライアントプロセスをちゃんと分けられる
ってことでいいのかな?とりあえず。
0506nobodyさん04/02/27 20:04ID:???
どっかのサイトに書いてあったと思うが、
MSDEとSQL-Serverは性能的にはほぼ同一らしい。
違いといえばEnterprise Managerの有無ぐらいか?
0507nobodyさん04/02/27 20:21ID:???
同時アクセス5以上で、パフォーマンス劣化するんじゃなかったか・・・
0508nobodyさん04/02/27 21:01ID:???
Google「MSDE SQL Server パフォーマンス 比較」で出てくる
上2つ(今現在)のリンク先が参考になるかと。
0509nobodyさん04/02/28 00:55ID:???
低下するかも試練けど実使用上問題なしって感じなのかな。

>>505
MSDEは製品版のMicrosoft SQL-Serverから各種管理ツールを取り除いてサポートもないバージョン(セキュリティ面ではサービスパックが提供されている)。
エンジンは同じものを使ってる。
基本的にはコマンドラインからSQL文やストアド呼び出して設定する。
Access持ってればAccessプロジェクトで一部ビジュアルに設定できる。
0510nobodyさん04/03/02 06:34ID:???
普通、ソースってaspxに書くものなのですか?ascxに書くものなのですか?
0511nobodyさん04/03/02 06:54ID:???
開発環境によりけり。
0512nobodyさん04/03/02 12:19ID:bLdn6yC4
マルチラインのテキストボックスで、
数行の文字を入力すると、
突然変なところで、改行されることがあります。
一旦こうなると、元に戻りません。
これの回避策があれば、よろしく
文字コードが悪さをしているのでしょうか?
0513nobodyさん04/03/03 00:32ID:???
>>512
ttp://www.htmq.com/style/word-break.shtml
0514nobodyさん04/03/04 01:11ID:bFPmxc8I
なあなあ、Webサービスのこと、ウェブサビ、って略そうぜ?!かっこEEEEEEEEEEEEEEEEEE
0515nobodyさん04/03/04 01:44ID:???
はぁ?「ウサ」に決まってんだろーが。
0516nobodyさん04/03/04 03:31ID:qm7Vb0aq
サーバーからクライアントに情報をPush配信したいんですが、どうしたら効率
いいでしょうか?
今考えてるのは.Net Remotingかソケットベースの独自ライブラリなんですが
0517nobodyさん04/03/04 21:52ID:???
>>516
微妙にスレ違いの悪寒。
ム板へ。
0518nobodyさん04/03/05 00:04ID:UIk+BAtz
>>515
ウェブサビがないなあ。日本人のウェブサビがっ!

>>516
独自プロトコル実装汁。
0519nobodyさん04/03/06 19:48ID:YykAUeuS
>>510
ascxはユーザーコントロールでしょ。
ms-help://MS.NETFrameworkSDKv1.1.JA/cpguidenf/html/cpconintroductiontowebusercontrols.htm

コードはaspxかaspx.csに書く。コードビハインドで調べろ。
http://www.atmarkit.co.jp/fdotnet/aspnet/aspnet04/aspnet04_01.html
0520nobodyさん04/03/10 12:05ID:cuQtZD3D
asp.netから(もちろんサーバの).exeを起動したい、かつ二重起動は防止したい、ということで、以下のようなコードを書きました。

if (System.Diagnostics.Process.GetProcessesByName("moner").Length > 1)
{
Response.Write "もう動いてるぞゴルァ!";
}
else
{
Process myProcess = new Process();
myProcess.StartInfo.FileName = "c:\exe\moner.exe";
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
myProcess.StartInfo.CreateNoWindow = false;
myProcess.Start();
}

moner.exeはC#で作ったコンソールアプリケーションです。
で、これを実行すると、「アクセスが拒否されました」というエラーが出ます。
まず間違いなく権限の問題だとは思うのですが、どの設定を直せばいいかがわかりません。
今も調べてはいますが、もし何かご存知の方がいらっしゃればアドバイスをいただければ幸いです。よろしくお願いします。
052152004/03/10 12:05ID:cuQtZD3D
520のエラー時のスタックトレースです。

[Win32Exception (0x80004005): アクセスが拒否されました。]
System.Diagnostics.PerformanceMonitor.GetData(String item) +491
System.Diagnostics.PerformanceCounterLib.GetPerformanceData(String item) +158
System.Diagnostics.PerformanceCounterLib.get_CategoryTable() +80
System.Diagnostics.PerformanceCounterLib.GetPerformanceData(String[] categories, Int32[] categoryIndexes) +56
System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library) +157

[InvalidOperationException: リモート コンピュータからプロセス情報を取得できませんでした。]
System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library) +259
System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) +152
System.Diagnostics.ProcessManager.GetProcessInfos(String machineName) +37
System.Diagnostics.Process.GetProcessesByName(String processName, String machineName) +69
System.Diagnostics.Process.GetProcessesByName(String processName) +11
ASP.moner_start_aspx.__Render__control1(HtmlTextWriter __output, Control parameterContainer) in c:\inetpub\wwwroot\hoge\moner_start.aspx:61
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +27
System.Web.UI.Control.Render(HtmlTextWriter writer) +7
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +130
System.Web.UI.Page.ProcessRequestMain() +1958
0522初心04/03/10 16:57ID:GkaBbvZB
昨日からWebMatrixいじり始めたASP.NET初心者です。XPPro使用です。
とりあえずガイドツアーに従って進めていたんですが、
IIS Web Serverを利用したところで(IEで)エラーが出てしまいました。
built-inのWeb Serverだと、あっさり動いてくれたんですが・・・
「行: 3 エラー: 終了していない文字列型の定数です。」
と出たので、コメント消せばいいのか?と思い、処理して実行すると、
「行: 3 エラー: ";"がありません。」
・・・VBって";"入れるんですか? そもそもソースいじってないのに(汗)
IISに問題があるんでしょうか? よろしければご教授ください。お願いします。
以下、built-in Web Serverで正常に動作したソースです。
(html除く。必要なら書き足します)

<%@ Page Language="VB" %>
<script runat="server">

' ページのコードをここに記述してください。
'

Sub Button1_Click(sender As Object, e As EventArgs)

Label1.Text = "Hello " & TextBox1.Text & "! you selected: " & Calendar1.SelectedDate

End Sub

</script>
0523nobodyさん04/03/10 21:18ID:ofbpFdt1
IISってどのIISですか?
0524nobodyさん04/03/10 21:59ID:KhKs+TX/
formの中身をサーバに送るときにgetを禁止できますか?postからのみ送信可に
したいんですが。

URLに値を埋めこんで実行してもその値は無視したいのですが。。。


↑何がいいたいか分かればいいんですが。
0525初心04/03/10 22:16ID:GkaBbvZB
>>523
どもです。
え〜・・XPProなので、IIS 5.1だと思います。下記より。
http://www.microsoft.com/japan/technet/treeview/default.asp?url=/japan/technet/columns/insider/iisi1202.asp
0526nobodyさん04/03/11 02:06ID:4W8FMmL3
Server.transferでSSL(https)のページにとびたいんだけど、
絶対パスで指定するとServer.transferでエラーになります。
なにか方法ないですか?
教えてください!

0527nobodyさん04/03/11 02:33ID:???
>>520
根本的な解決じゃないんだけど、起動されるアプリケーション側に多重起動
禁止の処理入れれば?
052852004/03/11 02:44ID:vDDwoxJL
>>527
最悪はソレをやりますが、一応仕様としては「起動を指定された時点で(ASPから)ユーザーに表示する」となっているもので……。
でも不思議だなぁ。Process.Start()で自分で起動したモノが自分で調べられないなんて……。
他に調べる方法あるのかな?
0529nobodyさん04/03/11 02:48ID:???
>>525
なんかどっかでIIS5.1のときは.NetFrameWorkのSDKをインストールする順番が重要だとか見たような・・。
0530nobodyさん04/03/11 03:12ID:???
>>520
スタックトレース見るとパフォーマンスカウンタからプロセスの状態取得してる
みたいなんだけど、パフォーマンスカウンタってAdministrator権限必要だった
かも
053152004/03/11 03:24ID:vDDwoxJL
>>530
ゲロゲロ(T_T)
ちゅーことは、この方法で二重起動を監視するのは無理ってコトでしょうか?
(……流石にASPNETにadmin権限を付加するワケにはいかないだろうし(^^;)

あとは……確かミューテックスを使う方法がWebにありましたね。これを試してみようかな?
0532nobodyさん04/03/11 03:52ID:???
ASP以外から起動することは絶対ないんだったらそれでもいいかもね
でも、そのプロセスが終了したらもう一度起動するんだよね?
やっぱ、起動される側でミューテックスが素直な気がするなぁ
0533初心04/03/11 10:21ID:???
>>529
どうもです・・・やっぱり解りません(汗)
ダウンロードサイトを読んでみる限り、
正しい順番以外にインストールできない気もしますが・・・
余所でも聞いてみますね。ありがとうございました。
053452004/03/11 11:57ID:vDDwoxJL
>>532
↓どうやらパフォーマンスカウンタの権限関係、というのはあたりのようです。
http://www.microsoft.com/japan/msdn/netframework/upgrade/aspnet_account_readme.asp

で、このプログラム、デバッグ時以外はASP.NETから起動することはありませんので、ミューテックスを試してみます。
どうやら動きそうですが、ProcessStartInfo.Argumentsに複数の引数を指定する方法を見つけなくては……。
(文字列として間に空白を挟んで結合してやってもダメでした(T_T))
これはC#スレで質問したほうがいいでしょうか?

あとはテスト用に、数十秒なかで待機するダミールーチンを仕込めばOKかな? まぁ、これはWebを漁ればどっかにあるでしょう。
やっと先が見えてきたかな?(T_T)
0535nobodyさん04/03/12 09:29ID:???
>>520
スタート
 コントロールパネル
  管理ツール
   ローカル セキュリティ ポリシー



セキュリティの設定
 ローカルポリシー
  ユーザー権利の割り当て
   システム パフォーマンスのプロファイル

に、ASP.NETのプロセスアカウント(“ASPNET”だっけ?)を追加したら
パフォーマンス カウンタ見られないかな……?
053652004/03/12 11:42ID:JXyXnFuK
>>535
だめっしゅ(T_T) EveryOneに付加してもダメ。
ミューテックスは……ASPXではOK。コマンドラインから起動した.exeでもOK。でもなぜか「ASPXから起動した子プロセス」ではNG!

……ピンチっす(T_T)
053752004/03/12 11:50ID:JXyXnFuK
>>536
追伸
ユーザー「ASPNET」にadmin権限を付加すれば動きます。セキュリティ設定の問題なのはわかっていますが……
まさか本番機でこんな設定にするわけにもいかないし(T_T)
0538nobodyさん04/03/12 14:53ID:???
>>534
> http://www.microsoft.com/japan/msdn/netframework/upgrade/aspnet_account_readme.asp

> パフォーマンス カウンタのデータを読み取る必要がある場合、またはパフォーマンス カウンタの
> 分類を作成する必要がある場合はAdministrator 権限または Power User 権限が必要になります。

>>535の最後、「システム パフォーマンスのプロファイル」じゃなくて「単一プロセスのプロファイル」が、
デフォルトだと AdminとPowUsr っぽいんだが、こちらはどうかしら?
053952004/03/12 15:41ID:JXyXnFuK
>>538
だめっしゅ……(T_T)
054053804/03/12 16:46ID:???
>>539
だめか。手元に検証環境がないのでアドバイスだけしかできずスマン。

調べたら
http://www.microsoft.com/japan/msdn/library/ja/vbcon/html/vbconintroductiontomonitoringperformancethresholds.asp
にあるように、アカウント偽装するといいのかも。

ちなみにぐぐってたらたまたま引っ掛かったんだが、
http://www.microsoft.com/japan/technet/prodtechnol/windowsserver2003/proddocs/entserver/lsm_local_groups.asp
を見たら、Server2003には「Performance Monitor Users」というユーザーグループがあるね。
054152004/03/12 17:10ID:JXyXnFuK
>>540
アカウント偽装ですか……セキュリティ的にはユーザはあまり言い顔しないでしょうけど、それしか方法がないなら仕方ない(T_T)
ミューテックスはなぜ動かないんだろうなぁ(T_T)
054252004/03/12 20:02ID:JXyXnFuK
>>541
ちなみにもうひとつ追伸。admin権限出しても、GetProcessesByNameでは自分が作ったプロセスを検索できませんでした。
……なんで???
054353804/03/12 20:50ID:???
>>537で動いてるっていってるのはMutexのほうだよね?
なら偽装してAdmin権限でMutex入りプロセスを起動するか、
それがダメならASPNETにAdmin権限入れるかのどちらかしかなさそうね。

GetProcessesByNameの方はお手上げ。
リファレンスには特に気になるような特記事項もなさそうなので、
可能ならMSのサポートへ問い合わせてみるとよいかも。
054452004/03/12 21:42ID:JXyXnFuK
>>543
……ダメっしゅ(T_T) 少なくともweb.configに書いただけぢゃあ動きませんでした。

何がダメなんだろう? プロセス起動をコメントアウトすればASPXも動くし、コンソールからは起動しようとしてるプログラムもちゃんと動いてる。
問題は子プロセスで起動するところだけだってのに……(T_T)
054552004/03/12 22:46ID:JXyXnFuK
>>543
……原因はMutexぢゃありませんでした(T_T)

1ステップずつreturnをかましていって、一番最初のDB接続でエラーが出てることがわかりました。
お手数をおかけしてすみませんでした。

……ということで改めて。sqlConnection生成時に、コンソールからはOKで子プロセスからはNGになる障害って、ご存知の方はいらっしゃいますか?
054653804/03/12 23:01ID:???
ん?
>>536
> 「ASPXから起動した子プロセス」ではNG!
って言ってるのは、
myProcess.Start() 自体がエラーで起動そのものに失敗してるの?
それとも起動はできるがMutexによる二重起動抑止ができてないってこと?
どうNGなのか、現象なり例外なりがないとこれ以上は分からんす。

というか、.aspxから直接Process叩かずに、常時起動するサービス(LocalSystemアカウント等で
動く Windows Service プログラム)を別途作って、.aspxからはサービスに起動要求だけ出して、
実際の起動管理はサービスにお任せする方法を考えてみたんだが、、、
054752004/03/12 23:02ID:JXyXnFuK
>>545
一部チャイ。Mutex「でも」コケてました。
現在わかっているのは、

・Mutexインスタンスの生成部分
・DB接続、sqlConnectionインスタンスの生成部分

の二つです。

Just-In-Timeデバッガが使えれば、もう少し詳しいことがわかるんでしょうけど……
054853804/03/12 23:05ID:???
>>545
あ、次のエラーに逝けたのね。おめでとw

sqlの方も同様に、まずは現象を追い詰めてみるべし。
054952004/03/12 23:06ID:JXyXnFuK
>>546
整理します。

(1)起動は出来てます。
(2)中身も動いてます。引数のチェックや起動メッセージ表示(どこにも表示されないけど(^^;))は動いてます。
(3)DB接続もしくはMutexの生成で異常終了します。
(4)どーして落ちてるか、Just-In-Timeデバッガが動かないのでわかりません(T_T)

ということです。

>というか、.aspxから直接Process叩かずに、常時起動するサービス(LocalSystemアカウント等で
>動く Windows Service プログラム)を別途作って、.aspxからはサービスに起動要求だけ出して、
>実際の起動管理はサービスにお任せする方法を考えてみたんだが、、、

二重起動が防げればOKです。ご教授をお願いします(T_T)
0550nobodyさん04/03/12 23:32ID:???
>>549
> (3)DB接続もしくはMutexの生成で異常終了します。
> (4)どーして落ちてるか、Just-In-Timeデバッガが動かないのでわかりません(T_T)
例外とかエラーメッセージとか一切なし?それが分からないと全く分からないので、
まずはなんとかして原因をつかんでくれ。原因が分かっても対処法が分からなければ
また聞いてちょ。

> 二重起動が防げればOKです。ご教授をお願いします(T_T)
Mutexを使った方法が無理だと分かったときの代替として出してみただけなんで、
まずはデバッグに専念してね、と逃げてみるw

んじゃ!
055152004/03/13 00:46ID:bwEpjrDz
>>550
ん〜っ、どうやって調べればいいのか……(T_T)
何かいい方法をご存知の方はいらっしゃいませんか?(涙)

Process.Start()で作るプロセスって、どのユーザーが実行するんでしょうね? なんかASPNETじゃないような気がするなぁ……。
0552nobodyさん04/03/13 00:55ID:zyn7hzxl
>>551
起動される方のアプリで例外キャッチして
ファイルにでもなんでも書けばいいんでは?

Mutex作成で失敗するってのは、既に権限の違うユーザが
Mutex所有してるとかってのがあったと思うけど、
起動されるアプリが作るんなら関係ないよね?
■ このスレッドは過去ログ倉庫に格納されています