【質問】ASP.NETスレ Part3【議論】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/10/09(月) 10:04:09ID:luJDzNn3Part1 - 【質問】 ASP.NETスレ 【議論】
http://pc5.2ch.net/php/kako/1040/10406/1040698263.html
【質問】ASP.NETスレ Part2【議論】
http://pc8.2ch.net/test/read.cgi/php/1111480331/
0562nobodyさん
2007/04/15(日) 03:25:33ID:???確かに検索で出てくるページもVBが多いよね
お陰でVBも読むことは出来るようになってきたw
0563nobodyさん
2007/04/15(日) 11:49:38ID:???追記。
http://www.microsoft.com/japan/msdn/thisweek/300x10/phase2/webservices_winapp/vb.aspx
Public Function GetDepartments()As DsAdv
Dim ds As New DsAdv()
Dim adapter As New DsAdvTableAdapters.DepartmentTableAdapter()
adapter.Fill(ds.Department)
Return ds
End Function
やはりMS様もこれでいいと仰ってます。
DataSetのテーブルかなんかの設定で間違ってるのかなぁ?
0564nobodyさん
2007/04/15(日) 12:41:58ID:???自己レスです。解決しました。
ta.Fill(ds.UserPageURLs,パラメータ,パラメータ)
でコンパイラが通りました。
UserPageURLsがテーブル名でした。
UserPageURLsDataTableはテーブルの型を定義するプロパティだったんですね。orz
オートコンプリートに表示される候補のDataTableという名前で完全に勘違いしてしまいました。
0565nobodyさん
2007/04/15(日) 13:18:08ID:???0567nobodyさん
2007/04/16(月) 14:01:35ID:AFy90HQVそのテーブルを比較して整合性を取りたいと考えています。
テーブルの内容はAテーブルには日付フィールドと仕事の予定フィールド
Bテーブルには日付フィールドと休日の予定フィールドが入っています。
(A・Bの日付が被る事はありません)
このABテーブルをAテーブルに纏めたいのです。
Bテーブルは終業時、同様の処理をしてバックアップ代わりにします。
普通に考えてBテーブルの全てのROWの日付でAテーブルをセレクトし
てBテーブルに存在しなければROWを追加してやれば良さそうに思うのですが
頻繁に行う事が予想されるので出来るだけ不可の少ない処理で
済ませたいのですが妙案はないでしょうか?
0568nobodyさん
2007/04/16(月) 18:58:56ID:5T51gVInコード変換ソフトとかあるし
VBでもC#でも問題ないんだが
0569nobodyさん
2007/04/16(月) 20:49:06ID:68o6OWMkc#で書いたのをVBに変換するのってあるでしょうか?
0571nobodyさん
2007/04/16(月) 22:48:59ID:???0572nobodyさん
2007/04/16(月) 22:52:02ID:???AとBの日付が絶対にかぶらないならSelectしたBをそのまま
Insertすればいいんでないの?
も負荷を小さくするならストアドをかな。
もしくはAとBをUnionしたものをビューに登録。
さらにAテーブルをRIGHT OUTER JOINして、追加したフィールドが
nullのものだけをWHEREで切り取る。
そうすればAになくてBにあるものだけが抽出できる。
つかそのままAとBをunionしたビューをそのまま使い続けて、
新しいテーブルに、そのビューの内容をコピーしたほうが
簡単な気がする。
0573nobodyさん
2007/04/17(火) 19:45:43ID:OYnOoGtS稀だろ
つか使ってる奴みたことねぇ
J#つかうならJavaのほうがいいような気がしなくもない
0574nobodyさん
2007/04/17(火) 22:11:02ID:???M$のサイトからダウンロードできるのと店で売ってるのと
何が違うんでしょうか??
0576574
2007/04/17(火) 23:14:46ID:???ありがとです。
ってことは、機能的に制限があるわけじゃないんですね。。。
(´ε`;)ウーン…VS2003使いとしては微妙だなぁ。。。
0577nobodyさん
2007/04/17(火) 23:17:13ID:???特にVS2005に慣れたら尚更
0579574
2007/04/17(火) 23:51:38ID:???そうなんですよ、、VB6からの乗換えでせっかく慣れてきたのにまたかよ('A`)ノ
って感じですわorz...
M$には、中小企業で開発環境が変わることの大変さを知って欲しいですわ。。
>>578
Webの案件は初めてでVS2003で試行錯誤して、「うひゃっ!なんか出来ちゃったwwwww」
って思ったんだけど、、、、ASP.NET 2.0 ( ゚Д゚)イッテヨシ!!
また試行錯誤してみますorz......
0580nobodyさん
2007/04/18(水) 06:09:51ID:+avfGZDm毎回aspxなどのコンパイル処理みたいなのが走って、すごい時間がかかるんですが
早くする設定などはあるのでしょうか?
0581nobodyさん
2007/04/18(水) 14:11:23ID:???リファクタやなんやらは、すべてのファイルをgrepして調べてるんだから、
すごい時間がかかるのは当たり前。
ファイルの参照設定をちゃんとやったりして可視性を見直すしかないと思う。
0582nobodyさん
2007/04/18(水) 23:14:27ID:+avfGZDm通常のWindowsアプリケーションとかだとあんまり時間がかからなかったため
何か設定でもあるのか、自分の環境だけなのか知りたくて質問しました。
今のところ、通常のgrepのほうが断然早いのでノイズが入ってしまうのを覚悟で手動で検索しています。
0583nobodyさん
2007/04/19(木) 11:10:59ID:???(&#hearts;とか)ちゃんとハートマークにして表示って出来ませんか?
0584344
2007/04/19(木) 16:23:20ID:???DropDownListはRenderContentsメソッド内でデータをhtmlencodeして出力しているらしい。
だからRenderContentsを↓のようにOverrideしてhtmlencodeをはずしてあげればいいはず。
public class NonHtmlEncodedDropDownList : System.Web.UI.WebControls.DropDownListを定義して
protected override void RenderContents(HtmlTextWriter output)
{
int count = Items.Count;ListItem item;bool selected = false;
for (int i = 0; i < count; i++)
{
item = Items[i];
output.WriteBeginTag("option");
if (item.Selected)
{
output.WriteAttribute("selected", "selected", false);
selected = true;
}
output.WriteAttribute("value", item.Value, true);
output.Write(">");
string text = item.Text; ←ここで本当はhtmlencodeされているハズ
output.Write(text);
output.WriteEndTag("option");
output.WriteLine();
}
output.Write(Text);
}
this.NonHtmlEncodedDropDownList1_1.Items.Add(new ListItem("♥", "1"))
これでハートが表示されてる。バグってたらスマソ。
0585nobodyさん
2007/04/19(木) 17:04:24ID:???ありがとう、俺VBしかわからないんだけどなんとなくわかったよ!
HtmlTextWriterがなにやってるかを探してencodeしてる部分だけ差し替えればいいんだよね?
0586344
2007/04/19(木) 18:02:09ID:???HtmlTextWriterは単にタグを作成するのに利用してるだけなので、
それそのものを調べても意味がないかも。
実際の(HtmlEncodeして表示している)RenderContentsメソッドを隠蔽して
別途HtmlEncodeしない仕様のメソッドを定義して利用させるってこと。
そのためにDropDownListの継承classを作成して、RenderContentsメソッドを
overrideするメソッドを作る。
ただし、こうするとタグが自由に利用できてしまうので、
使用可能な特殊コードのみHtmlEncodeを通さないようにして、
それ以外は通常通りHtmlEncodeを通すようにしたほうがいいかもね。
0587nobodyさん
2007/04/19(木) 18:41:04ID:???丁寧にありがとう!
>そのためにDropDownListの継承classを作成して、RenderContentsメソッドを
>overrideするメソッドを作る。
これをやってみたんだけど「その型 (test.NonHtmlEncodedDropDownList)はコントロール (System.Web.UI.WebControls.DropDownList) の型と互換性がありません。」
っていわれちゃった…
この作った継承クラスで目的のDROPDOWNLISTを定義してるのが間違ってますか?
0588344
2007/04/19(木) 18:48:58ID:???vb.netの言語仕様に関してはちょっとわからない。
↓を参考にしてみて挑戦してみてください。
http://www.atmarkit.co.jp/fdotnet/basics/oop04/oop04_03.html
0589nobodyさん
2007/04/19(木) 19:42:43ID:???0590nobodyさん
2007/04/20(金) 12:16:41ID:ev1GBwjCリファクタリングを早くする方法は
http://pc11.2ch.net/test/read.cgi/tech/1176646923/13
を参照のこと。
ただそれによって早くなるのは
http://pc11.2ch.net/test/read.cgi/tech/1176646923/40
という理由らしいから、使い方はお気をつけて。
0591nobodyさん
2007/04/20(金) 13:04:58ID:B09CNaZo沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…
※一国二制度
簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
(つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。
今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
0593nobodyさん
2007/04/22(日) 00:20:10ID:???ある事情があって先にHogeServerというconnectionStringsを使っていました。
で、ユーザー認証その他の機能を使いたくて以下のように変更しました。
<connectionStrings>
<remove name="LocalSqlServer" />
<add name="HogeServer" connectionString="以下略
</connectionStrings>
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add
name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="HogeServer"
applicationName="Hoge"
以下略
こうしたところ、ユーザーの登録や削除はASP.NET構成ツールでうまく機能しました。
ユーザー登録関連のコントロールもちゃんと動きます。
ところが、ロールの設定やプロバイダの設定でエラーがでます。
どうもmachine.configに上書きしてない"LocalSqlServer"という項目がかなり残ってるようです。
こんなとき、みなさんならどうしますか?
1.machine.configを検索して"LocalSqlServer"の項目をすべて"HogeServer"に書き換える
2.machine.configを検索して"LocalSqlServer"の項目をすべてweb.config上でRemoveして"HogeServer"に書き換える
3."HogeSerVer"を"LocalServer"に戻してコードの中の"HogeServer"をすべて書き換える
どんな影響があるのか不安でどうしたらいいかわかりません。ご意見をお願いします
0594594
2007/04/22(日) 10:26:39ID:g6P3Re1p認証関連ですがお手上げなんで教えてください
Windows Server 2003 R2で,
テキストファイルで作成したC#のdefault.aspxに
http://localhsot/default.aspxのようにアクセスすると認証のダイアログが出ず,
http://127.0.0.1/default.aspxのようにアクセスすると認証のダイアゴルが出てしまいます.
認証のダイアログを出さないようにするにはどう設定したらよいのでしょうか???
IISのディレクトリセキュリティの設定では,「匿名アクセスを有効にする」と「統合Windows認証」にチェックが入っています.
ファイルのセキュリティでは,NETWORK SERVICEが読み取りと実行が可能になっています.
0595nobodyさん
2007/04/22(日) 14:13:19ID:???Windows認証が効いてるんだろ?
チェック外してみろ。
0596nobodyさん
2007/04/22(日) 23:29:14ID:???なんだこれ・・・過去に苦労してたのがすっげー楽に実現できる。
カルチャーショックだな
0597nobodyさん
2007/04/23(月) 10:11:07ID:???0598nobodyさん
2007/04/23(月) 11:16:42ID:???俺も6年ぶりぐらいにWebアプリに戻ってきたけど、かなりのカルチャーショック。
ADO.NETの仕組みとか、.NETのライブラリの基本とかが膨大すぎて覚えるのが大変。
オブジェクト指向は過去に経験しててよかったとオモタ
クラシックなaspの仕組みしってるとasp.netの裏側も見えるので損ではないとオモタ
0599nobodyさん
2007/04/23(月) 22:52:53ID:SAH2Jxj+あっさりとできたものが、ASP.NETではできないとか
やりかたが複雑とかわかんないとかいうのがあって
むかつくこともないわけではない
0600nobodyさん
2007/04/23(月) 23:15:20ID:???0601nobodyさん
2007/04/23(月) 23:34:14ID:Qv1rWHCm複数の画面を同時に出すフレームワークについて。
あるフレームワーク処理関連を全てコピーして、
別のフレームワークを作ったら、両方とフレームワークが効かなくなってしまった。
原因が全くわからない。
一番、多い原因は何ですか?
リンク・コード内の名前直しは間違ってません。
0602nobodyさん
2007/04/23(月) 23:41:44ID:???0603nobodyさん
2007/04/23(月) 23:44:13ID:Qv1rWHCmつまるところ、フレームワークをコピペして、
一つのプロジェクトの二個のフレームワークが出来ました。
そしたら、二つとも画面の合成が効かなくなってしまった。
エスパー希望
0604nobodyさん
2007/04/24(火) 00:12:07ID:???0605エスパー
2007/04/24(火) 01:24:00ID:???この問題を解決できるエスパーは現れないみたい。
残念ですた。
0607nobodyさん
2007/04/24(火) 16:19:21ID:???別のフレームワークを作ったことが原因では?
これが一番多い原因だと思う。
0608nobodyさん
2007/04/24(火) 19:00:49ID:???だったらもう一度ソースの中の名前をスミズミまで見てみれ
意外な所に自動生成された名前があったり必要な宣言がされてなかったり…
0609nobodyさん
2007/04/24(火) 19:03:45ID:???0610nobodyさん
2007/04/24(火) 22:43:33ID:???0611nobodyさん
2007/04/24(火) 23:06:20ID:???ディレクトリが違うから絶対パスで記述しても、そんなファイルねーだけだろ。
わざわざasp.netスレで聞くんじゃねー
0612nobodyさん
2007/04/25(水) 00:27:48ID:???よくaspxをコピペするときにRegisterブロックあたりまでコピペしてしまって
コンパイルエラーの原因がわからず泣いてる奴がいるよな。
0613nobodyさん
2007/04/29(日) 15:25:29ID:???標準のブラウザを火狐等にしても、IEが立ち上がってきてしまいます。
オプション等を全部見たのですが、環境のところにWebブラウザという項目があったものの、
それらしいところが見つけられませんでした。
0614nobodyさん
2007/04/29(日) 16:31:14ID:???デフォで"Webページの実行"みたいな名前の項目のすぐ下に
Webブラウザを選択して表示みたいな項目があってそこで
ブラウザの変更はできた。
項目の正式名称は忘れたw
0615nobodyさん
2007/04/29(日) 22:38:45ID:???ソートせずに、そのまま更新ボタンおせば該当行が更新モードになります。
しかし、ソートした後に更新ボタンを押すとソート前の行が編集モードに
なってしまいます。いろんなサンプル見ましたが、このことにふれたソース
がなく、悩んでいます。どなたかご存知でしたら教えてください。
0616nobodyさん
2007/04/30(月) 02:26:32ID:???データをDBから読み込んで、DataGridで表示しています。
ソートせずに編集ボタンおせば該当行が編集モードになります。
しかし、ソートした後に編集ボタンを押すとソート前の行が編集モードに
なってしまいます。いろんなサンプル見ましたが、このことにふれたソース
がなく、悩んでいます。どなたかご存知でしたら教えてください。
0618nobodyさん
2007/05/01(火) 20:11:30ID:???自己レス。
解決しましたのでこの質問はなし。
0619nobodyさん
2007/05/04(金) 14:59:15ID:Fic8rDCBLAN内の別PCや自宅PCからは普通に接続できます。
そしてなぜかASP.NET自体タイムアウトで接続できない状態です。
再起動するもダメです。
何か設定が必要なのでしょぅか?
0620nobodyさん
2007/05/04(金) 19:59:17ID:???どんなネットワーク構成図?
どんなネットワークではうまくいっていて、そのネットワークの何をどうしたの?
>現在はLANで接続
現在はって、昔はWAN接続?
>「localhost」ではサーバーを立てているPCから接続できなくなりました。
localhostで、何から何に接続できないの?
>LAN内の別PCや自宅PCからは普通に接続できます。
サーバと同一LAN内の別PCや自宅PCでlocalhostで接続したの?
>そしてなぜかASP.NET自体タイムアウトで接続できない状態です。
どこから接続してタイムアウトになるの?
「なぜか」だと思う理由は?
サーバのIPアドレス直入力では接続可能?
127.0.0.1ではどう?
0621nobodyさん
2007/05/07(月) 00:54:06ID:???AutoDetectに設定すると検索ロボットからのアクセスでログが荒れる
のだけれども、UseDeviceProfileだと設定を作っていくのが面倒。
しかもプロファイルを設定してないUAでくると……
UserAgentに「Yahoo」とか「Google」の文字があったら無条件で
非Cookielessセッションに切り替える方法ってない?
現在はUseDeviceProfileを使用してMozillaを継承したbrowserファイル
でなんとか制御中。Defaultを直接継承して「yahoo」にマッチするように
設定してみたんだけど、なぜかMozillaのほうが優先されてしまう。
0622nobodyさん
2007/05/07(月) 22:11:59ID:28dJTdJ9本当にないと思ってるのか
直接Writeしないとできないことはまだ多い
0623nobodyさん
2007/05/07(月) 22:15:22ID:???0624nobodyさん
2007/05/08(火) 02:35:36ID:???普通のFormならpictureboxを使用して描画できると思いますが、ASP.NETではどのような手法がありますか?
0626nobodyさん
2007/05/08(火) 10:04:00ID:???たとえば、blogにあるwebPingを受け付けるサービスを作りたい場合、
blogからpostされたxml形式のwebPingの内容を取得する方法を教えてください。
0627nobodyさん
2007/05/08(火) 11:04:40ID:???で、正規表現を使ったURL書き換えが紹介されていたので早速実装してみました。
書き換え規則はこんな感じです。
<add url="~/users/(.*)\.aspx" mappedUrl="~/users.aspx?u=$1"/>
URLの書き換えはうまくいったのですが、そのファイルの中に
<script type="text/javascript" src="js/swfobject.js"></script>
<link rel="stylesheet" type="text/css" href="css/RootStyle.css" />
などの外部ファイル参照があるのですがこれらがことごとく失敗します。
開発中の環境とURLが違うためにURL指定することはなるべく避けたいわけです。
そこでsrc="/js/swfobject.js"のようにルートからの絶対パスで書いたのですが
これもうまく解釈されません。
なにか上手い方法をご存知ありませんか?
0628624
2007/05/08(火) 11:31:36ID:???bitmap.Save(Response.OutputStream, ImageFormat.Jpeg);
とすると、新しいページに画像だけが表示されますが、
特定のImageコントロールに表示するには、やはり画像
ファイルを一時保存して、ImageUrlを指定しなければならないでしょうか?
0629nobodyさん
2007/05/08(火) 12:15:21ID:???xmlっても普通にstringのpostだからRequest.Formで取得できるのでは?
>>627
それじゃ、そのaspxのあるディレクトリ配下指定だよ。
HttpServerUtility.MapPathのServer.Mappthを使うと幸せになれるかも。
0630nobodyさん
2007/05/08(火) 12:25:43ID:???昔、classicなaspでやってたときは、確か、たとえば
bitmap.aspで、Response.BinaryWriteでbitmapを出力するだけのaspを作って、
<img src="bitmap.asp">とかってよくやっていたものだが、
同様にして、BitmapButtonのImageUrl="bitmap.aspx"すればだめかな?
0631nobodyさん
2007/05/08(火) 13:09:10ID:???Bitmap出力するだけならashx使っても良いし、
またはdefault.aspx?mode=bitmapみたいな
urlをImageUrlに使ってクエリ文字列"mode"が"bitmap"
の時は画像を出力するというふうにしてもいいと思う。
データの受け渡しはSession変数使うのがいちばん簡単かな。
0632nobodyさん
2007/05/08(火) 13:24:41ID:???データの受け渡しってのはbitmapのことじゃない。
ページのクラスのフィールドに文字列を保存しても次のリクエスト時には消える
から、何か画像の生成に必要な一時データがあるならの話ね。
0633nobodyさん
2007/05/08(火) 13:29:02ID:???stringのpostだけど、Formの名前?がわからない。
ttp://www.nurs.or.jp/~sug/homep/rss/rss5.htm
FormのTextをSubmitするのではなく、こんな感じで送られてくるので。
0634nobodyさん
2007/05/08(火) 13:41:15ID:???DataBaseのPrimayKeyとかを渡して、そのIDの画像を表示するとかのことね。
ただSessionが消えることを考えると、文字としてaspxに埋め込まれるGETの方が
ブラウザのキャッシュに残ったときや、戻る進むで遷移したときに対処しやすい。
そもそもSessionでデータを引き渡すだけでいいなら、aspx?mode=bitmapも必要ないし。
>>633
そのaspxに対してstringなデータとしてpostされてくることは確かなわけ?
であれば、Request.FormはRequest.Form[i]のようにindexで取得できるのでキー名は不要。
もし知りたいならRequest.Form.AllKeysですべてのキー名が取得できるが、試してみた?
まずはmsdnを嫁。
0635nobodyさん
2007/05/08(火) 13:50:10ID:???そのようですね。
/を最初につけるとルートからの指定ってのがあったと思ったんですけど。
./と同じ解釈になってしまうのってなんか釈然としません。
まーDosやうにくすとは違うってことでしょう。
>HttpServerUtility.MapPathのServer.Mappthを使うと幸せになれるかも。
物理アドレスがソースに含まれてしまうみたいですね。
これは怖いです。
RequestからUrlのベースをパースするとかめんどくさいことやればなんとか
なりそうですが、書き換えルールにディレクトリを含めるのをやめるのが
一番簡単かもしれないですね。
<add url="~/users_(.*)\.aspx" mappedUrl="~/users.aspx?u=$1"/>
0636nobodyさん
2007/05/08(火) 13:56:01ID:???いやだから、物理アドレスから、IISでいうところのwwwrootまでを削れば、
IISのルートフォルダを起点とした絶対パスが取得できるのでは?
(デフォルトのIISのインスト環境)
それがいやなら、完全に手動で
../../../js/swfobject.js
のようにルートまで/../../を使ってもどって指定してやればいい。
↓参考
http://www.ipa.go.jp/security/awareness/vendor/programming/a05_02_main.html
0637nobodyさん
2007/05/08(火) 14:08:39ID:???>そのaspxに対してstringなデータとしてpostされてくることは確かなわけ?
確かなわけです。 というか、webPingの仕様がそういうものだから。
Request.Form.AllKeysは気付かなかったけれど、
Request.ContentTypeが"text/xml"であることを確認してRequest.InputStreamで全部ぶっこぬいたらうまくいきました。
たぶん。
0638nobodyさん
2007/05/08(火) 14:32:11ID:???ああ、なるほど。
IISのルートフォルダを起点とした絶対パスは
どちらも同じなんですよ。
そのルートフォルダを起点とした絶対パスを
うまく指定する方法がなくて困ってるわけです。
開発環境
localhost/js/…
localhost/css/…
公開AP
www.app.net/js/…
www.app.net/css/…
アプリケーションファイルがルートにある間は"js/…"でいいわけですが、
localhost/app.aspx?user="username"
URL書き換えによってアプリケーションファイルのフォルダが
localhost/user/username.aspx
に偽装されてしまったため、相対指定で対処きなくなったんです。
パラメータが動的に増えて階層が動的に変化する場合もあるわけで
せっかくURLの書き換え規則が正規表現で書けるようになったので
それをフルに使いたいと思ったんです。
ひょっとして"/js"などのルートからの絶対指定ができないのは、
ASP.NET開発サーバだけですか?
IISならできるとか?
0639nobodyさん
2007/05/08(火) 14:51:08ID:???そうか、その絶対パスでみれないからだめなのかorz
すまなかった。お詫びにこんなもの探してきた↓
VirtualPathUtility.MakeRelative("/design/css/main.css", "/images");
0640nobodyさん
2007/05/08(火) 15:00:37ID:???http://msdn2.microsoft.com/ja-jp/library/ms178116(VS.80).aspx
0641nobodyさん
2007/05/08(火) 16:11:39ID:???そうそう。そうなんです。
これからじっくりと試してここに報告に来ますね。
まだ解決できたわけではないけれど、おかげで十分幸せになれました。
ほんとにうれしかったです。ありがとう。
0642nobodyさん
2007/05/08(火) 17:06:46ID:???それもそうだね。
?mode=bitmap&id=1&key=xxxxxみたいな感じでクエリ文字列にデータを含める方法ね。
そういう方法でするなら画像生成部分を別のaspxに分離したほうがスマートだ。
あくまでもwinのGUIに近い感じで開発したい場合、
クラスのフィールド変数を使っては値をやりとりできないため
別の方法で値のやりとりしなければいけない(Session変数など)
という注意点を書きたかっただけだから混乱させてしまったかな。
その方法は、別にSession変数でなくても>>634の方法でもいい。
用途によるけど、履歴に残したくない、表に変数内容を出したくない場合
(キーに顧客の氏名、キャプチャイメージの文字列などが含まれるなど)はやはり
URLのクエリ文字列に含めるのは好ましくない。
なおかつ表示が一時的で良いならSession変数を使うほうが良い。
まぁ複数の画像を生成する必要がある場合?mode=bitmap&img=hoge
みたいにクエリ文字列を追加しないといけないけれど。
それ以外だったら>>634の方法のほうがむしろいいかも。
追伸
Session使った場合も動作の安定性を確保するために?mode=bitmapは最低限必要。
0643nobodyさん
2007/05/08(火) 20:13:20ID:???>あくまでもwinのGUIに近い感じで開発したい場合、
なるほど。asp.netはwebの概念とWindowFormの
概念が混じってるから難しいね。
一番良いのは動的に生成したBitMapを直接、
指定できるカスタムコンポーネントを作ることだねぇ。
0644624
2007/05/08(火) 22:50:44ID:???>>639
すばらしいです。ありがとうございます。
ただ、ashxで試しに折れ線を描画してJpeg画像作成してみたのですが、
折れ線がガタガタな画像が表示されました。
品質を指定すれば改善するのでしょうかね・・・。また明日試してみたいと思います
0646nobodyさん
2007/05/09(水) 14:53:51ID:189NeqEfXMLファイルのパスの取得は出来ないんでしょうか?
wwwroot
└hoge
├a.aspx
└ hoge2
└b.xml←このファイルのパス
DLLではserver.Mappathは使えないですしa.aspxから引数として
ファイルパスを渡すのも仕様上NGで絶対パスをベタ書きするのもNGです
とにかくxmlファイルの内容をa.aspxで参照しているDLLから取得出来れば良いのですが…
0647646
2007/05/09(水) 14:56:50ID:???したい事はxmlファイルの内容をDLLから取得です。
相対パスはその為の手段として思い付いた事っす。
0648nobodyさん
2007/05/09(水) 16:08:06ID:???-----------DLL.cs-------------
string foo = ConfigurationSettings.AppSettings["bar"];
XmlDocument myDoc = new XmlDocument();
myDoc.Load(foo);
-------------web.config--------------
<appSettings>
<add key="bar"
value="~/b.xml" />
</appSettings>
これじゃだめなの?
直接関係ないけど、変数名にhoge使う奴はしね
0649646
2007/05/09(水) 16:48:09ID:???ありがとうございます。
web.configファイルの存在を忘れてました…
試してみます。
ちなみに…GW明けで修正案件4件以上入ってきたのでマジでしねそうです…
0650646
2007/05/09(水) 18:18:52ID:???>xmlDoc.Load(foo);
の部分でファイルパスが絶対パスに変更されwin32\\system\\...のような形に
なってしまいアクセスしたいファイル意外のパスを参照してエラーがででしまいます。
むぅ…DLLのコード内でWebアプリのパスだよと指定する方法があるのでしょうか?
0651nobodyさん
2007/05/09(水) 18:36:40ID:???ありゃ。 じゃあこれはどう!?
-----------DLL.cs-------------
public void trymefunc(HttpApplication app)
{
string foo = app.Request.MapPath("~/b.xml");
XmlDocument myDoc = new XmlDocument();
myDoc.Load(foo);
...
}
-----------default.aspx.cs-------------
protected void Page_Load(object sender, EventArgs e)
{
...
xxx.yyy.trymefunc((HttpApplication)sender);
...
}
なんか駄目かもしれんけどさ。
0653nobodyさん
2007/05/09(水) 18:43:12ID:???うるせーはげ
よし。わかtった。
651をちょっと変更しる。
-----------default.aspx.cs-------------
protected void Page_Load(object sender, EventArgs e)
{
...
xxx.yyy.trymefunc(ApplicationInstance;);
...
}
korede ikeru hazu
0654nobodyさん
2007/05/09(水) 18:47:30ID:???0655646
2007/05/09(水) 18:59:51ID:???そちらも試してみたいと思います。
納期が厳しいので最悪のケースはDLLにグローバル変数pathを追加して
セットアクセサでa.aspx.csからpathに値をsetするような形になりそうというか
この方が楽なんですがこちらを選んだら負けのような希ガス
0657nobodyさん
2007/05/09(水) 21:31:20ID:???つ http://www.abc.fscs.jp/2ch/default.aspx
こんなんでどう?
0658nobodyさん
2007/05/09(水) 21:47:21ID:???0659639
2007/05/09(水) 22:13:34ID:???0660nobodyさん
2007/05/10(木) 00:21:02ID:???使えるよ。
0661646
2007/05/10(木) 03:06:43ID:???本当に感謝です@デスマーチ中
>656
GetFullPathはwin32\system\...だったか求めているパスが返ってこなかったです。
>658,660
DLLからserver.Mappathを使う為のヒントをいただけないでしょうか?
昼間ググったりリファレンスを読んだ限りは見つけられなかったもので…
■ このスレッドは過去ログ倉庫に格納されています