<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Visual Studio.Net 2003(Everett)</title><link>http://blogs.wankuma.com/naka/category/129.aspx</link><description>このねたが古くなるかもしれないので　製品でわけてます。
もちろん陳腐化していないネタもあります。</description><managingEditor>中博俊 &lt;naka@wankuma.com&gt;</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>中博俊 &lt;naka@wankuma.com&gt;</dc:creator><title>Visual Studio.NET 2003 SP1</title><link>http://blogs.wankuma.com/naka/archive/2006/08/17/36618.aspx</link><pubDate>Thu, 17 Aug 2006 19:22:00 GMT</pubDate><guid>http://blogs.wankuma.com/naka/archive/2006/08/17/36618.aspx</guid><wfw:comment>http://blogs.wankuma.com/naka/comments/36618.aspx</wfw:comment><comments>http://blogs.wankuma.com/naka/archive/2006/08/17/36618.aspx#Feedback</comments><slash:comments>22</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naka/comments/commentRss/36618.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naka/services/trackbacks/36618.aspx</trackback:ping><description>&lt;P&gt;Microsoft&amp;#174; Visual Studio&amp;#174; .NET&amp;#8482; 2003 Service Pack 1&lt;BR&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=ja&amp;amp;FamilyID=69D2219F-CE82-46A5-8AEC-072BD4BB955E"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=ja&amp;amp;FamilyID=69D2219F-CE82-46A5-8AEC-072BD4BB955E&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;ついにきた・・・・&lt;/P&gt;
&lt;P&gt;けど、使う場面があるのかどうか謎&lt;/P&gt;
&lt;P&gt;とりあえず当然ダウンロード&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/naka/aggbug/36618.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>中博俊 &lt;naka@wankuma.com&gt;</dc:creator><title>ASP.NETでInProcを使ってはいけない</title><link>http://blogs.wankuma.com/naka/archive/2006/03/16/21958.aspx</link><pubDate>Thu, 16 Mar 2006 12:48:00 GMT</pubDate><guid>http://blogs.wankuma.com/naka/archive/2006/03/16/21958.aspx</guid><wfw:comment>http://blogs.wankuma.com/naka/comments/21958.aspx</wfw:comment><comments>http://blogs.wankuma.com/naka/archive/2006/03/16/21958.aspx#Feedback</comments><slash:comments>393</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naka/comments/commentRss/21958.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naka/services/trackbacks/21958.aspx</trackback:ping><description>&lt;P&gt;この文書の最新版は&lt;BR&gt;&lt;A href="http://naka.wankuma.com/site/column/aspnet/00012.htm"&gt;http://naka.wankuma.com/site/column/aspnet/00012.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;
&lt;HR id=null&gt;
&lt;/P&gt;
&lt;DIV&gt;
&lt;P class=SakuseiVersion&gt;この文書はVisual Studio 2005 TSかTE for SD(.NET 2.0)をベースに記述されていますが、Visual Studio 2002から同じことです。&lt;/P&gt;
&lt;P&gt;ASP.NETをプロジェクトとして取り組んでいる方は、"あなたのプロジェクトはセッションモードをどうしますか？"と聞かれて即答できますか？&lt;/P&gt;
&lt;P&gt;Visual Studio 2003のWeb.configを見てみましょう。&lt;/P&gt;&lt;PRE class=code&gt;&amp;lt;!--  セッション状態の設定
      既定では、ASP.NET は Cookie を使用して、要求がどのセッションに属するかを識別します。
       Cookie が使用できない場合は、URL にセッション識別子を入力することで、セッションを見つけることができます。
      Cookie を有効にするには、sessionState を cookieless=&lt;SPAN class=str&gt;"false"&lt;/SPAN&gt; に設定してください。
--&amp;gt;
&amp;lt;&lt;SPAN class=kwd&gt;sessionState &lt;/SPAN&gt;
        &lt;SPAN class=kwd&gt;mode&lt;/SPAN&gt;=&lt;SPAN class=str&gt;"InProc"&lt;/SPAN&gt;
        &lt;SPAN class=kwd&gt;stateConnectionString&lt;/SPAN&gt;=&lt;SPAN class=str&gt;"tcpip=127.0.0.1:42424"&lt;/SPAN&gt;
        &lt;SPAN class=kwd&gt;sqlConnectionString&lt;/SPAN&gt;=&lt;SPAN class=str&gt;"data source=127.0.0.1;Trusted_Connection=yes"&lt;/SPAN&gt;
        &lt;SPAN class=kwd&gt;cookieless&lt;/SPAN&gt;=&lt;SPAN class=str&gt;"false"&lt;/SPAN&gt; 
        &lt;SPAN class=kwd&gt;timeout&lt;/SPAN&gt;=&lt;SPAN class=str&gt;"20"&lt;/SPAN&gt; 
/&amp;gt;
&lt;/PRE&gt;
&lt;P&gt;このように定義されています。&lt;/P&gt;
&lt;P&gt;Visual Studio 2005ではWeb.configデフォルトで存在しないので、C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\CONFIG\web.config.comments&lt;BR&gt;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config.comments&lt;/P&gt;
&lt;P&gt;にデフォルト設定のコメントがあります。&lt;/P&gt;&lt;PRE class=code&gt;&amp;lt;sessionState mode=&lt;SPAN class=str&gt;"InProc"&lt;/SPAN&gt; ～略～ &amp;gt;
&lt;/PRE&gt;
&lt;P&gt;どちらもデフォルトはインプロセスモードということです。これはASP.NETが実際に稼動しているプロセス(プログラム)の内部に値を保持するという意味です。&lt;/P&gt;
&lt;P&gt;ここでひとつ確認をして見ましょう。&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://naka.wankuma.com/site/column/aspnet/00012.1.png"&gt;&lt;/P&gt;
&lt;P&gt;このようにラベルとボタンだけをおきます。&lt;/P&gt;
&lt;P&gt;ボタンのコードに以下のようなものを用意します。&lt;/P&gt;&lt;PRE class=cs&gt;&lt;SPAN class=kwd&gt;C#
protected&lt;/SPAN&gt; &lt;SPAN class=kwd&gt;void&lt;/SPAN&gt; Button1_Click(&lt;SPAN class=kwd&gt;object&lt;/SPAN&gt; sender, EventArgs e)
{
  &lt;SPAN class=kwd&gt;if&lt;/SPAN&gt; (Session[&lt;SPAN class=str&gt;"cnt"&lt;/SPAN&gt;] == &lt;SPAN class=kwd&gt;null&lt;/SPAN&gt;)
  {
    Session[&lt;SPAN class=str&gt;"cnt"&lt;/SPAN&gt;] = 1;
  }
  &lt;SPAN class=kwd&gt;else&lt;/SPAN&gt;
  {
    Session[&lt;SPAN class=str&gt;"cnt"&lt;/SPAN&gt;] = (&lt;SPAN class=kwd&gt;int&lt;/SPAN&gt;)Session[&lt;SPAN class=str&gt;"cnt"&lt;/SPAN&gt;] + 1;
  }
  &lt;SPAN class=kwd&gt;this&lt;/SPAN&gt;.Label1.Text = ((&lt;SPAN class=kwd&gt;int&lt;/SPAN&gt;)Session[&lt;SPAN class=str&gt;"cnt"&lt;/SPAN&gt;]).ToString();
}&lt;/PRE&gt;
&lt;P&gt;ボタンを押すと数字が数がカウントアップするサンプルですね。&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://naka.wankuma.com/site/column/aspnet/00012.2.jpg"&gt;&lt;/P&gt;
&lt;P&gt;うまく言っていることを確認します。&lt;/P&gt;
&lt;P&gt;ここで、ASP.NET構成の設定で何かを変更してみましょう。&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://naka.wankuma.com/site/column/aspnet/00012.3.jpg"&gt;&lt;/P&gt;
&lt;P&gt;適用した後に、もう1度ボタンを押して見ましょう。&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://naka.wankuma.com/site/column/aspnet/00012.4.jpg"&gt;&lt;/P&gt;
&lt;P&gt;1になってしまいました。これはなぜでしょうか？&lt;/P&gt;
&lt;P&gt;PRB: ASP.NET InProc セッション状態モードを使用すると、 Session Data が失われます。&lt;BR&gt;&lt;A href="http://support.microsoft.com/kb/324772/ja"&gt;http://support.microsoft.com/kb/324772/ja&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;[PRB] ASP.NET アプリケーションで断続的にセッション変数が失われる&lt;BR&gt;&lt;A href="http://support.microsoft.com/kb/316148/ja"&gt;http://support.microsoft.com/kb/316148/ja&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Why does App restart? (FAQ)&amp;nbsp; ←うにさんの日本語情報です&lt;BR&gt;&lt;A href="http://www.hollytown.net/uniblog/Comment/2005/02/18/0878.aspx"&gt;http://www.hollytown.net/uniblog/Comment/2005/02/18/0878.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;ASP.NETというレベルで見ると、これらの情報のとおり再起動したほうがいいと思ったタイミングで再起動されます。&lt;/P&gt;
&lt;P&gt;うにさんのページには無いのですが、2.0の環境では内包ディレクトリを削除すると再起動されるようです。&lt;/P&gt;
&lt;P&gt;また他にはIIS6(Windows Server 2003、Windows XP x64 Edition)には別途アプリケーションプールと言う考え方があります。&lt;/P&gt;
&lt;P&gt;これらは設定次第で、分ごとやメモリの大量消費の都度自動的に再帰動します。&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://naka.wankuma.com/site/column/aspnet/00012.5.png"&gt;&lt;/P&gt;
&lt;P&gt;ASP.NETのアプリケーションは時にに大量の要求をこなす圧力にさらされています。時に大量の一時メモリを利用する圧力にさらされています。&lt;/P&gt;
&lt;P&gt;これらの要求にこたえるためにも再起動は必要なのです。&lt;/P&gt;
&lt;P&gt;さて、InProcからStateServerやSQL Serverに変更した場合に問題になるのは何でしょうか？&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;シリアル化可能であること 
&lt;LI&gt;Session_OnEndイベントが発生しないこと &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;おもにこの2点に注意しておけば大丈夫でしょう。&lt;/P&gt;
&lt;P&gt;参考リンク&lt;BR&gt;&lt;A href="http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=274821&amp;amp;SiteID=7"&gt;http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=274821&amp;amp;SiteID=7&lt;/A&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;img src ="http://blogs.wankuma.com/naka/aggbug/21958.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>中博俊 &lt;naka@wankuma.com&gt;</dc:creator><title>Visual Studio 2003 &amp; 2005 SP1</title><link>http://blogs.wankuma.com/naka/archive/2006/03/15/21919.aspx</link><pubDate>Wed, 15 Mar 2006 09:28:00 GMT</pubDate><guid>http://blogs.wankuma.com/naka/archive/2006/03/15/21919.aspx</guid><wfw:comment>http://blogs.wankuma.com/naka/comments/21919.aspx</wfw:comment><comments>http://blogs.wankuma.com/naka/archive/2006/03/15/21919.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naka/comments/commentRss/21919.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naka/services/trackbacks/21919.aspx</trackback:ping><description>&lt;P&gt;2006 Q2 Visual Studio.NET 2003 SP1&lt;/P&gt;
&lt;P&gt;2006 Q3 Visual Studio 2005 SP1&lt;/P&gt;
&lt;P&gt;こんな感じのスケジュールらしいです。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/vstudio/support/servicing/default.aspx"&gt;http://msdn.microsoft.com/vstudio/support/servicing/default.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;VBNullStringさんとこから&lt;BR&gt;&lt;A href="http://www.vbaspcoder.com/PermaLink,guid,791e07ef-4eff-4015-8102-034b54d811e1.aspx"&gt;http://www.vbaspcoder.com/PermaLink,guid,791e07ef-4eff-4015-8102-034b54d811e1.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/naka/aggbug/21919.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>中博俊 &lt;naka@wankuma.com&gt;</dc:creator><title>mc++のvalue classってコンストラクタ作れるのね・・・</title><link>http://blogs.wankuma.com/naka/archive/2006/02/26/21551.aspx</link><pubDate>Sun, 26 Feb 2006 23:24:00 GMT</pubDate><guid>http://blogs.wankuma.com/naka/archive/2006/02/26/21551.aspx</guid><wfw:comment>http://blogs.wankuma.com/naka/comments/21551.aspx</wfw:comment><comments>http://blogs.wankuma.com/naka/archive/2006/02/26/21551.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naka/comments/commentRss/21551.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naka/services/trackbacks/21551.aspx</trackback:ping><description>&lt;P&gt;mc++&lt;/P&gt;&lt;PRE class=cpp&gt;&lt;SPAN class=kwd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwd&gt;__value&lt;/SPAN&gt; &lt;SPAN class=kwd&gt;class&lt;/SPAN&gt;  a
{
&lt;SPAN class=kwd&gt;public&lt;/SPAN&gt;:
  &lt;SPAN class=kwd&gt;int&lt;/SPAN&gt; i;
  a()
  {
    &lt;SPAN class=kwd&gt;this&lt;/SPAN&gt;-&amp;gt;i = 10;
  }
};&lt;/PRE&gt;
&lt;P&gt;C++/CLI&lt;/P&gt;&lt;PRE class=cpp&gt;&lt;SPAN class=kwd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwd&gt;value&lt;/SPAN&gt; &lt;SPAN class=kwd&gt;class&lt;/SPAN&gt;  a
{
&lt;SPAN class=kwd&gt;public&lt;/SPAN&gt;:
  &lt;SPAN class=kwd&gt;int&lt;/SPAN&gt; i;
  a()  //C3417
  {
    &lt;SPAN class=kwd&gt;this&lt;/SPAN&gt;-&amp;gt;i = 10;
  }
};&lt;/PRE&gt;&lt;img src ="http://blogs.wankuma.com/naka/aggbug/21551.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>中博俊 &lt;naka@wankuma.com&gt;</dc:creator><title>.NET Framework 2.0は退化している？</title><link>http://blogs.wankuma.com/naka/archive/2006/02/09/21163.aspx</link><pubDate>Thu, 09 Feb 2006 16:48:00 GMT</pubDate><guid>http://blogs.wankuma.com/naka/archive/2006/02/09/21163.aspx</guid><wfw:comment>http://blogs.wankuma.com/naka/comments/21163.aspx</wfw:comment><comments>http://blogs.wankuma.com/naka/archive/2006/02/09/21163.aspx#Feedback</comments><slash:comments>2338</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naka/comments/commentRss/21163.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naka/services/trackbacks/21163.aspx</trackback:ping><description>&lt;P&gt;どぼんさんのところでこのような話がありました。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&amp;amp;namber=14910&amp;amp;rev=&amp;amp;no=0"&gt;http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&amp;amp;namber=14910&amp;amp;rev=&amp;amp;no=0&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;
&lt;HR id=null&gt;

&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;VS 2005 Express Edition（ＶＢ）&lt;BR&gt;で作成したアプリケーションを広く一般に公開するに当たり&lt;BR&gt;使用者側で&lt;BR&gt;Microsoft .NET Framework Version 2.0 再頒布可能パッケージ (x86)&lt;BR&gt;&lt;/EM&gt;&lt;A href="http://www.microsoft.com/japan/msdn/netframework/downloads/" target=_blank&gt;&lt;EM&gt;http://www.microsoft.com/japan/msdn/netframework/downloads/&lt;/EM&gt;&lt;/A&gt;&lt;BR&gt;&lt;EM&gt;が必要になります。そしてこれのＯＳが下記（参考）のように、最新に&lt;BR&gt;アップデート済みのＯＳで無ければ使用できないのです。&lt;BR&gt;さらにWindows Installer 3.0 が無ければ 再頒布可能パッケージ (x86)&lt;BR&gt;をインストールする事も出来ません。これでは広く一般に公開することは出来ず&lt;BR&gt;対象がパソコンに詳しい特定のユーザーに限定されてしまいます。&lt;BR&gt;&lt;BR&gt;これと比較してＶＳ２００２、ＶＳ２００３　ではＯＳの制限がなく&lt;BR&gt;簡単に.NET Framework 1.1 再頒布パッケージをインストールできました。&lt;BR&gt;&lt;BR&gt;ＶＳ２００２、ＶＳ２００３　のようにＯＳに関係なく 再頒布可能パッケージ (x86)&lt;BR&gt;をインストールできる方法を教えて下さい。&lt;BR&gt;宜しくお願いします。&lt;/EM&gt;&lt;/P&gt;&lt;EM&gt;
&lt;P&gt;
&lt;HR id=null&gt;

&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/EM&gt;.NET 1.1と2.0でサポートされているOSはどう違うのでしょうか？&lt;/P&gt;
&lt;P&gt;Microsoft .NET Framework Version 1.1 再頒布可能パッケージ&lt;BR&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&amp;amp;DisplayLang=ja"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&amp;amp;DisplayLang=ja&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;サポートされているオペレーティング システム : &lt;/STRONG&gt;Windows 2000; Windows 98; Windows ME; Windows NT; Windows Server 2003; Windows XP&lt;/P&gt;
&lt;P&gt;Microsoft .NET Framework Version 2.0 再頒布可能パッケージ (x86)&lt;BR&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&amp;amp;displaylang=ja"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&amp;amp;displaylang=ja&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;サポートされているオペレーティング システム : &lt;/B&gt;Windows 2000 Service Pack 3; Windows 98; Windows 98 Second Edition; Windows ME; Windows Server 2003; Windows XP Service Pack 2&lt;/LI&gt;&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;必要なソフトウェア: &lt;/B&gt;&lt;BR&gt;o &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=5FBC5470-B259-4733-A914-A956122E08E8&amp;amp;displaylang=ja"&gt;&lt;FONT color=#0033cc&gt;Windows Installer 3.0&lt;/FONT&gt;&lt;/A&gt; (&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=CEBBACD8-C094-4255-B702-DE3BB768148F"&gt;&lt;FONT color=#0033cc&gt;Windows Installer 2.0 &lt;/FONT&gt;&lt;/A&gt;またはそれ以降を必要とする Windows 98/ME は除きます) : &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=889482fc-5f56-4a38-b838-de776fd4138c&amp;amp;displaylang=ja"&gt;&lt;FONT color=#0033cc&gt;Windows Installer 3.1&lt;/FONT&gt;&lt;/A&gt; またはそれ以降を推奨します。&lt;BR&gt;o &lt;A href="http://www.microsoft.com/windows/ie/downloads/default.mspx"&gt;&lt;FONT color=#0033cc&gt;IE 5.01 またはそれ以降&lt;/FONT&gt;&lt;/A&gt;: .NET Framework をインストールするには、Microsoft Internet Explorer 5.01 またはそれ以降をインストールしておく必要があります。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;あきらかに.NET1.1の説明は荒っぽいとは思いますが、Windows NTがサポートから外れていますし、Windows 2000 SP2以前、 Windows XP SP1以前もサポートから外れています。&lt;/P&gt;
&lt;P&gt;これらは&lt;/P&gt;
&lt;P&gt;Windows デスクトップ製品のライフサイクル&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/windows/lifecycle/default.asp"&gt;http://www.microsoft.com/japan/windows/lifecycle/default.asp&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;サービスパックロードマップ&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/windows/lifecycle/servicepacks.asp"&gt;http://www.microsoft.com/japan/windows/lifecycle/servicepacks.asp&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;で規定されている、Microsoftが.NET Framework 2.0を出荷するときのサポート製品レベルに他なりません。&lt;/P&gt;
&lt;P&gt;ただWindows 2000やWindows XPのGOLDに入らないはずも無いとは思いますが、サポートはいつまでもなんて無理ですし、妥当なところだと思います。&lt;/P&gt;
&lt;P&gt;.NET Frameworkに限らず、ミドルウェアや、サーバ製品を使っている場合には、無条件にそれらのサポートレベルを自製品にも適用しないといけないのは自明だと思われます。&lt;/P&gt;
&lt;P&gt;そのうえで不満があるならばMicrosoftにクレームとして依頼すべきかと思います。&lt;/P&gt;
&lt;P&gt;ライフサイクルサポート期間が延びるかもしれませんしね。&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;img src ="http://blogs.wankuma.com/naka/aggbug/21163.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>中博俊 &lt;naka@wankuma.com&gt;</dc:creator><title>.NET1.1ライブラリ3件追加</title><link>http://blogs.wankuma.com/naka/archive/2006/01/30/20932.aspx</link><pubDate>Mon, 30 Jan 2006 00:08:00 GMT</pubDate><guid>http://blogs.wankuma.com/naka/archive/2006/01/30/20932.aspx</guid><wfw:comment>http://blogs.wankuma.com/naka/comments/20932.aspx</wfw:comment><comments>http://blogs.wankuma.com/naka/archive/2006/01/30/20932.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naka/comments/commentRss/20932.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naka/services/trackbacks/20932.aspx</trackback:ping><description>&lt;P&gt;最大、最小、平均を取るためのビルダー3種類を公開しました。&lt;/P&gt;
&lt;TABLE class=hairline summary=クラス一覧 border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;A href="http://naka.wankuma.com/site/library/dotnet1.1/Wankuma.Math.AverageBuilder1d.htm"&gt;Wankuma.Math.AverageBuilderクラス Version1&lt;/A&gt; &lt;STRONG&gt;&lt;SPAN style="COLOR: #ff0000"&gt;NEW!&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;平均の値を取り出すためのビルダーです。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;A href="http://naka.wankuma.com/site/library/dotnet1.1/Wankuma.Math.MaxBuilder1d.htm"&gt;Wankuma.Math.MaxBuilderクラス Version1&lt;/A&gt; &lt;STRONG&gt;&lt;SPAN style="COLOR: #ff0000"&gt;NEW!&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;最大の値を取り出すためのビルダーです。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;A href="http://naka.wankuma.com/site/library/dotnet1.1/Wankuma.Math.MinBuilder1d.htm"&gt;Wankuma.Math.MinBuilderクラス Version1&lt;/A&gt; &lt;STRONG&gt;&lt;SPAN style="COLOR: #ff0000"&gt;NEW!&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;最小の値を取り出すためのビルダーです。&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/naka/aggbug/20932.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>中博俊 &lt;naka@wankuma.com&gt;</dc:creator><title>わんくまライブラリ Wankuma.IO.Pathクラス Version1</title><link>http://blogs.wankuma.com/naka/archive/2006/01/29/20931.aspx</link><pubDate>Sun, 29 Jan 2006 22:59:00 GMT</pubDate><guid>http://blogs.wankuma.com/naka/archive/2006/01/29/20931.aspx</guid><wfw:comment>http://blogs.wankuma.com/naka/comments/20931.aspx</wfw:comment><comments>http://blogs.wankuma.com/naka/archive/2006/01/29/20931.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naka/comments/commentRss/20931.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naka/services/trackbacks/20931.aspx</trackback:ping><description>&lt;P&gt;この文書の最新版は&lt;BR&gt;&lt;A href="http://naka.wankuma.com/site/library/dotnet1.1/Wankuma.IO.Path1d.htm"&gt;http://naka.wankuma.com/site/library/dotnet1.1/Wankuma.IO.Path1d.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;
&lt;HR id=null&gt;
&lt;/P&gt;
&lt;P&gt;ソースファイルへ&lt;BR&gt;&lt;A href="http://naka.wankuma.com/site/library/dotnet1.1/Wankuma.IO.Path1s.htm"&gt;Wankuma.IO.Path1s.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;ソースファイル直接ダウンロードへ&lt;BR&gt;&lt;A href="http://naka.wankuma.com/site/library/dotnet1.1/Wankuma.IO.Path1c.txt"&gt;Wankuma.IO.Path1c.txt&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;利用規約へ&lt;BR&gt;&lt;A href="http://naka.wankuma.com/site/library/kiyaku.htm"&gt;../kiyaku.htm&lt;/A&gt;&lt;/P&gt;
&lt;H3&gt;クラスの説明&lt;/H3&gt;
&lt;P&gt;パスを文字列操作する静的メソッドたちです。&lt;BR&gt;絶対パスから相対パスを導き出す、パス文字列の最後の文字の区切り文字を追加したり、削除したりというメソッドがあります。&lt;/P&gt;
&lt;H3&gt;メソッド&lt;/H3&gt;
&lt;H4&gt;public static string PathAbsoluteRelative(string BasePath, string TargetPath)&lt;/H4&gt;
&lt;P&gt;絶対パス2つから相対パスを導き出します。&lt;/P&gt;
&lt;P&gt;BasePath : 元になるパス&lt;BR&gt;TargetPath : 抽出するターゲットパス&lt;/P&gt;
&lt;H4&gt;public static string AddEndsSeparator(string path)&lt;/H4&gt;
&lt;P&gt;パス文字列の最後の文字が区切り文字でなければ区切り文字を追加します&lt;BR&gt;c:\ → c:\, c:\a → c:\a\&lt;/P&gt;
&lt;P&gt;path : 検索するパス&lt;/P&gt;
&lt;H4&gt;public static string RemoveEndsSeparator(string path)&lt;/H4&gt;
&lt;P&gt;パス文字列の最後の文字が区切り文字であれば区切り文字を削除します&lt;BR&gt;c:\ → c:, c:\a → c:\a c:\等の場合には意図しない動作をする可能性があるので注意。&lt;BR&gt;あくまで文字列の最後の文字だけを判定します。 &lt;/P&gt;
&lt;P&gt;path : 検索するパス&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/naka/aggbug/20931.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>中博俊 &lt;naka@wankuma.com&gt;</dc:creator><title>わんくまライブラリ Wankuma.IO.Directoryクラス Version1</title><link>http://blogs.wankuma.com/naka/archive/2006/01/28/20903.aspx</link><pubDate>Sat, 28 Jan 2006 00:13:00 GMT</pubDate><guid>http://blogs.wankuma.com/naka/archive/2006/01/28/20903.aspx</guid><wfw:comment>http://blogs.wankuma.com/naka/comments/20903.aspx</wfw:comment><comments>http://blogs.wankuma.com/naka/archive/2006/01/28/20903.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naka/comments/commentRss/20903.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naka/services/trackbacks/20903.aspx</trackback:ping><description>&lt;P&gt;この文書の最新版は&lt;BR&gt;&lt;A href="http://naka.wankuma.com/site/library/dotnet1.1/Wankuma.IO.Directory1d.htm"&gt;http://naka.wankuma.com/site/library/dotnet1.1/Wankuma.IO.Directory1d.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;
&lt;HR id=null&gt;
&lt;/P&gt;
&lt;DIV&gt;
&lt;P class=SakuseiVersion&gt;この文書はVisual Studio 2003(.NET1.1)をベースに記述されています。それ以降のバージョンや、あなたが読んでいる時点では変更されている可能性があります。&lt;BR&gt;またバージョンアップされている場合にはなんらかかの不具合を含んでいる可能性があります。&lt;/P&gt;
&lt;P&gt;ソースファイルへ&lt;BR&gt;&lt;A href="http://naka.wankuma.com/site/library/dotnet1.1/Wankuma.IO.Directory1s.htm"&gt;&lt;FONT color=#002c99&gt;Wankuma.IO.Directory1s.htm&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;ソースファイル直接ダウンロードへ&lt;BR&gt;&lt;A href="http://naka.wankuma.com/site/library/dotnet1.1/Wankuma.IO.Directory1c.txt"&gt;&lt;FONT color=#002c99&gt;Wankuma.IO.Directory1c.txt&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;利用規約へ&lt;BR&gt;&lt;A href="http://naka.wankuma.com/site/library/kiyaku.htm"&gt;&lt;FONT color=#002c99&gt;../kiyaku.htm&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;H3&gt;クラスの説明&lt;/H3&gt;
&lt;P&gt;ディレクトリ操作、調査の静的メソッドたちです。&lt;BR&gt;ディレクトリのコピー、再帰的一覧作成、ファイルの再帰的一覧作成を行います。&lt;/P&gt;
&lt;H3&gt;メソッド&lt;/H3&gt;
&lt;H4&gt;public static void Copy(string sourceDirName, string destDirName, bool AttributeSetFlag)&lt;BR&gt;public static void Copy(string sourceDirName, string destDirName)&lt;/H4&gt;
&lt;P&gt;Directoryをコピーします。&lt;/P&gt;
&lt;P&gt;sourceDirName : コピー元ディレクトリ名&lt;BR&gt;destDirName : コピー先ディレクトリ名&lt;BR&gt;AttributeSetFlag : ディレクトリを作成するときに属性情報をコピーするかどうかのフラグ&lt;/P&gt;
&lt;H4&gt;public static string[] GetDirectoriesRecursion(string path)&lt;/H4&gt;
&lt;P&gt;再帰的にディレクトリの一覧を作成します。&lt;/P&gt;
&lt;P&gt;path : 検索するパス&lt;/P&gt;
&lt;H4&gt;public static string[] GetFilesRecursion(string TargetDir)&lt;BR&gt;public static string[] GetFilesRecursion(string TargetDir, string[] SearchExtension)&lt;BR&gt;public static string[] GetFilesRecursion(string TargetDir, string SearchPath)&lt;BR&gt;public static string[] GetFilesRecursion(string TargetDir, string SearchPath, string[] SearchExtension)&lt;/H4&gt;
&lt;P&gt;再帰的にファイルの一覧を取得します。&lt;/P&gt;
&lt;P&gt;TargetDir : 取得対象ディレクトリ&lt;BR&gt;SearchExtension : 検索する拡張子の一覧&lt;BR&gt;SearchPath : 探すファイルマスク&lt;/P&gt;&lt;/DIV&gt;&lt;img src ="http://blogs.wankuma.com/naka/aggbug/20903.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>中博俊 &lt;naka@wankuma.com&gt;</dc:creator><title>ディスクがいっぱいになるときにStreamのCloseを強制できない</title><link>http://blogs.wankuma.com/naka/archive/2005/12/08/19854.aspx</link><pubDate>Thu, 08 Dec 2005 00:24:00 GMT</pubDate><guid>http://blogs.wankuma.com/naka/archive/2005/12/08/19854.aspx</guid><wfw:comment>http://blogs.wankuma.com/naka/comments/19854.aspx</wfw:comment><comments>http://blogs.wankuma.com/naka/archive/2005/12/08/19854.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naka/comments/commentRss/19854.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naka/services/trackbacks/19854.aspx</trackback:ping><description>&lt;P&gt;この文書の最新版は&lt;BR&gt;&lt;A href="http://naka.wankuma.com/site/column/dotnet/00028.htm"&gt;http://naka.wankuma.com/site/column/dotnet/00028.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;
&lt;HR id=null&gt;
&lt;/P&gt;
&lt;DIV&gt;
&lt;P class=SakuseiVersion&gt;この文書はVisual Studio 2003(.NET 1.1 SP1)とVisual Studio 2005(.NET 2.0)をベースに記述されています 。&lt;/P&gt;
&lt;P&gt;まず以下のソースを見てみてください。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SQL Serverのストアドプロシージャからは以下のような構文でreturnによる戻り値を返せます。&lt;/P&gt;&lt;PRE class=cs&gt;&lt;SPAN class=kwd&gt;try&lt;/SPAN&gt;
{
  &lt;SPAN class=kwd&gt;using&lt;/SPAN&gt; ( System.IO.StreamWriter sw = &lt;SPAN class=kwd&gt;new&lt;/SPAN&gt; System.IO.StreamWriter(&lt;SPAN class=str&gt;@"a:\gomi"&lt;/SPAN&gt;) )
  {
    &lt;SPAN class=kwd&gt;try&lt;/SPAN&gt;
    {
      sw.Write(&lt;SPAN class=kwd&gt;new&lt;/SPAN&gt; &lt;SPAN class=kwd&gt;char&lt;/SPAN&gt;[16*1024*1024]);
    }
    &lt;SPAN class=kwd&gt;finally&lt;/SPAN&gt;
    {
      sw.Close();
    }
  }
}
&lt;SPAN class=kwd&gt;catch&lt;/SPAN&gt;(System.IO.IOException er)
{
  &lt;SPAN class=cmt&gt;//ディスクフルなどのClose失敗などが考えられる。
&lt;/SPAN&gt;}&lt;/PRE&gt;
&lt;P&gt;一般的にファイルの書き出しを行うときに 、ディスクがいっぱいになった時やプログラムでエラーになることを考慮し、finallyでCloseと、usingを利用して破棄(Dispose)を強制させるつくりにするかと思います。&lt;/P&gt;
&lt;P&gt;このCloseやDispose時に閉じることが出来なかった場合やFlushを行うことが出来なかった場合には例外が発生するために、さらにtryでくくる必要があります。&lt;/P&gt;
&lt;P&gt;この例では何かあった場合には握りつぶしています。&lt;/P&gt;
&lt;P&gt;このプログラムでディスクがいっぱいのドライブに書き出しを行って見ましょう。&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 428px; HEIGHT: 161px" alt=例外画面 src="http://naka.wankuma.com/site/column/dotnet/00028.1.jpg"&gt;&lt;/P&gt;&lt;PRE&gt;ハンドルされていない例外 : System.IO.IOException: ディスクに十分な空き領域があり
ません。

   at System.IO.__Error.WinIOError(Int32 errorCode, String str)
   at System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
   at System.IO.FileStream.FlushWrite()
   at System.IO.FileStream.Flush()
   at System.IO.FileStream.Dispose(Boolean disposing)
   at System.IO.FileStream.Finalize()
&lt;/PRE&gt;
&lt;P&gt;このようにアプリケーションがクラッシュします、スタックトレースはコンソールアプリケーションなら出力されます。&lt;/P&gt;
&lt;P&gt;このスタックトレースからわかることは、Writeで失敗して例外が出ています(1つ目のブロック)、その後finallyのCloseを実行しようとし内部でDisposeが呼ばれ、その内部でFlushが呼ばれています。(2つ目のブロック)、そして最終usingの処理としてDisposeが呼ばれます。(3つ目のブロック)&lt;/P&gt;
&lt;P&gt;結局のところDisposeの中でFlushを呼んでいるせいで、強制Closeが出来ないためにハンドル出来ない状態になっています。&lt;/P&gt;
&lt;P&gt;このClose出来ないためにアプリケーションがクラッシュするのが問題で、.NET1.1 SP1環境向けにはQFEというパッチが提供されています。&lt;/P&gt;
&lt;P&gt;FIX: You receive exception error messages when you use the StreamWriter.Flush () method or the StreamWriter.Close () method to access a file on a disk that has insufficient space in .NET Framework 1.1&lt;BR&gt;&lt;A href="http://support.microsoft.com/kb/892544/ja"&gt;http://support.microsoft.com/kb/892544/ja&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;これを適用した環境で上記の例外を握りつぶすコードを実行すると無事エラーが無く終了することが出来ます。&lt;/P&gt;
&lt;P&gt;.NET1.1 SP2で対応されるといいのですが、お急ぎの方はQFEを入手してください。&lt;/P&gt;&lt;/DIV&gt;&lt;img src ="http://blogs.wankuma.com/naka/aggbug/19854.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>中博俊 &lt;naka@wankuma.com&gt;</dc:creator><title>.NET 1.1 ディスクフルになると、ファイル書き込みしているStreamを閉じることが出来ない対応？</title><link>http://blogs.wankuma.com/naka/archive/2005/12/02/19781.aspx</link><pubDate>Fri, 02 Dec 2005 09:25:00 GMT</pubDate><guid>http://blogs.wankuma.com/naka/archive/2005/12/02/19781.aspx</guid><wfw:comment>http://blogs.wankuma.com/naka/comments/19781.aspx</wfw:comment><comments>http://blogs.wankuma.com/naka/archive/2005/12/02/19781.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/naka/comments/commentRss/19781.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/naka/services/trackbacks/19781.aspx</trackback:ping><description>&lt;P&gt;FIX: .NET Framework 1.1 の十分な領域があるディスクのファイルにアクセスするために、 StreamWriter.Flush ()メソッドまたは StreamWriter.Close ()メソッドを使用すると、例外エラー メッセージを表示します。&lt;A href="http://support.microsoft.com/kb/892544/ja"&gt;http://support.microsoft.com/kb/892544/ja&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;もしかしたら以前から引きずっていたこの問題が解消するかもしれません。&lt;/P&gt;
&lt;P&gt;早速入手して見たいと思います。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/naka/aggbug/19781.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>