• 締切済み

Windows Server 2003 IIS環境で外部の画像ファイルを取得したい

外部のサーバーにある画像ファイルをエクセルに表示するというプログラムをC#で組んでいます。 ローカルでは問題なく動くのですが、サーバーだと画像を貼り付ける処理のところでとまってしまいます。 【環境】 Windows Server 2003 IISインストール済み 言語:C# Apache2.2 【ソース】 Excel.Shapes shapes = Sheet1.Shapes; Excel.Shape shape = shapes.AddPicture( URL, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, x, y, w, h); ローカルにおいた画像を貼り付けることはできたので、権限の問題かと思いますが。。。。 何卒宜しくお願いします。

みんなの回答

  • junkUser
  • ベストアンサー率56% (218/384)
回答No.2

再インストールする前に、.Net Framework 3.5をインストールしてから試してみてください。 これで動作しない場合は、アクセス権の問題と思われます。 一応確認ですが、やろうとしていることは以下で間違いないですか? ・Apache or IISで公開している画像をWindows Server 2003上のエクセルで表示

green_man
質問者

補足

回答ありがとうございます。 >一応確認ですが、やろうとしていることは以下で間違いないですか? >・Apache or IISで公開している画像をWindows Server 2003上のエクセルで表示 はい。 別サーバーに格納(Apacheで公開)されている画像をhttpで取得してエクセルに貼り付けようとしています。 .Net Framework 3.5をインストールしましたが、ダメでした。。。 再インストールしてみたいと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • junkUser
  • ベストアンサー率56% (218/384)
回答No.1

ローカルというのは開発環境のことですかね。 必要なDLLが足りないような気がしますが・・・

green_man
質問者

補足

はい。開発環境です。 やはりサーバーをもう一度インストールしなおしたほうがいいのでしょうか、、、

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C# Excelファイルへの画像挿入。

    C# shapes.AddPictureによるExcelファイルへの画像挿入。 現在、C#でExcelファイル(xls)にPNG画像を貼り付けるツールを作成しています。 以下のプログラムを実行したのですが、 shapes.AddPicture(@"C:\test.png", MsoTriState.msoFalse,MsoTriState.msoFalse,fx, fy, 100,100); の部分で以下の様なエラーが表示されました。 ---------------- エラー文 ---------------- 型 'System.Runtime.InteropServices.COMException' のハンドルされていない例外が mscorlib.dll で発生しました 追加情報: 指定された値は境界を超えています。 ---------------- つきましては解決方法を教えてください。 ----------------------- プログラム ----------------------- Excel.Application exApp = new Excel.Application(); Excel.Workbook wkbook; Excel.Workbooks wkbooks = exApp.Workbooks; exApp.Visible = true; exApp.DisplayAlerts = false; wkbook = (Excel.Workbook)wkbooks.Open(@"C:\test.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); Excel.Sheets sheets = wkbook.Worksheets; Excel.Worksheet wksheet = (Excel.Worksheet)sheets["test"]; Excel.Range cells = wksheet.Cells; Excel.Range range = (Excel.Range)cells[1, 21]; range.Select(); Excel.Shapes shapes = wksheet.Shapes; float fx = float.Parse(range.Left.ToString()); float fy = float.Parse(range.Top.ToString()); shapes.AddPicture(@"C:\test.png", MsoTriState.msoFalse,MsoTriState.msoFalse,fx, fy, 100,100); -----------------------

  • Shape画像保存モードの事後変更

    VBA Excel2007を使用しています。 画像を読み込むために、例えば、 Dim picture As Shape Set picture = ActiveSheet.Shapes.AddPicture(filename:=filename, LinkToFile:=msoTrue, SaveWithDocument:=msoFalse, Left:=Selection.Left, Top:=Selection.Top, Width:=0, Height:=0) のように、一旦、画像を「文書とともに保存しない」モードで読込み、後にそのShape画像を「文書とともに保存する」ように変更することは、可能でしょうか。

  • サーバーにインストールできない環境でActiveXを使う方法

    初めて投稿します。よろしくお願いします。 現在ASP.NET2008(C#)で開発しています。 開発環境はLocalだったのですが、最終的にお客様に納品するときには、Windows系のレンタルサーバー(ActiveWeb)に移管する予定です。 現在開発のマシンや、客先のマシンにはOfiiceがインストールされているのですが、レンタルサーバーにはOfficeがインストールされておらず、したがって、MicrosoftのObject.Libraryが入っていません。 お客様の要望でどうしてもエクセル出力等が必要なのですが、サーバーにAxtiveXが入っていない環境で、エクセルを出力することは可能なのでしょうか。 クライアントは不特定多数ではないので、クライアントマシンにOfficeがある、という前提でもかまいません。 方法があればご教授いただければと思います。 よろしくお願いいたします。

  • VB6 エクセルに画像貼り付け

    お世話になります。 VB6でエクセルのセルを数値で指定して、そこに画像を読み込んで実態を張り付けたいのですが、 色々調べて ActiveSheet.Pictures.Insertと ActiveSheet.Shapes.AddPictureを試してみましたが ActiveSheet.Shapes.AddPicture( FileNameTmp, False, True, 10, 20, 0, 0) AddPictureはもしかしてVB6には対応していないのでしょうか? 構文エラーになってしまいます。 ActiveSheet.Pictures.Insert(FileNameTmp).Select Insertだと画像がリンクになってしまいます。

  • エクセルを使って、トレーニング名に応じて画像を自動切換表示させたい

    Sheet1に、トレーニング名、説明文、画像(jpgファイル名)等の項目を作り、100件以上のレコードが入っている表があります。 Sheet2に、上記の3レコード(=3トレーニング)分のデータをA4用紙に見やすく配置したフォーム(?)を作り、VLOOKUP関数を使って、データを表示させるようにしました。(つまりAトレーニングのトレーニング番号を選ぶとAトレーニングのデータが、Bトレーニングのトレーニング番号を選ぶとBトレーニングのデータが表示) この時、一つ目のレコードについては画像を表示させることができたのですが、2つめ以降のレコードについては画像を表示させることができません。 以下のコードを作成しています。 Private Sub Worksheet_Change(ByVal Target As Range) Dim fName As String, pict As Shape On Error GoTo ER: If Target.Address <> "$C$3" Then Exit Sub fName = ThisWorkbook.Path & "\Image\" & Target.Offset(0, 1).Text If Dir(fName) = "" Then fName = ThisWorkbook.Path & "\Image\NoImage.jpg" End If With ActiveSheet For Each pict In .Shapes If pict.TopLeftCell.Address = "$E$3" Then pict.Delete Exit For End If Next pict Set pict = .Shapes.AddPicture(fName, msoTrue, msoFalse, _ .Range("E3").Left, .Range("E3").Top, 160, 120) End With If Target.Address <> "$C$15" Then Exit Sub fName = ThisWorkbook.Path & "\Image\" & Target.Offset(0, 1).Text If Dir(fName) = "" Then fName = ThisWorkbook.Path & "\Image\NoImage.jpg" End If With ActiveSheet For Each pict In .Shapes If pict.TopLeftCell.Address = "$E$15" Then pict.Delete Exit For End If Next pict Set pict = .Shapes.AddPicture(fName, msoTrue, msoFalse, _ .Range("E15").Left, .Range("E15").Top, 160, 120) End With If Target.Address <> "$C$27" Then Exit Sub fName = ThisWorkbook.Path & "\Image\" & Target.Offset(0, 1).Text If Dir(fName) = "" Then fName = ThisWorkbook.Path & "\Image\NoImage.jpg" End If With ActiveSheet For Each pict In .Shapes If pict.TopLeftCell.Address = "$E$27" Then pict.Delete Exit For End If Next pict Set pict = .Shapes.AddPicture(fName, msoTrue, msoFalse, _ .Range("E27").Left, .Range("E27").Top, 160, 120) End With ER: End Sub ハイパーリンクのように他に飛んで表示させるのではなく、エクセルのその場所に表示させたいと思います。(3トレーニング分をA4用紙で印刷したいと思います) ちなみに画像は、エクセルファイルの置いてある下(サブフォルダ)にまとめて入れております。宜しくお願い致します。

  • VBAで同じ作業を2回繰り返す場合のコード

    下記コードで具体的アドバイスを頂ければと思います。よろしくお願いいたします。 ■やりたいこと EXCELのシートに、2種類の写真表示スペースを作って、そのそばでそれぞれファイル名を入力して、そのファイル名を変えるごとに、それぞれのjpegファイルを表示させたい。 ■質問 下記コードで、ふたつめの変数を変えればよいことは、分かるのですが、どこをどのようにして、変数を変えればいいかわかりません。ご教授お願いします。 ■私の作っているコード とあるサイトを参考にして、下記作成いたしました。 'ひとつめ写真表示 Private Sub Worksheet_Change(ByVal Target As Range) Dim fName As String, pict As Shape If Target.Address <> "$H$25" Then Exit Sub fName = ThisWorkbook.Path & "\board_Image\" & Target.Offset(0, 0).Text If Dir(fName) = "" Then fName = ThisWorkbook.Path & "\board_Image\NoImage.jpg" End If With ActiveSheet For Each pict In .Shapes If pict.TopLeftCell.Address = "$C$26" Then pict.Delete Exit For End If Next pict Set pict = .Shapes.AddPicture(fName, msoTrue, msoFalse, _ .Range("k6").Left, .Range("C26").Top, 260, 320) End With End Sub ----------------------------------------------------------------------------- 'ふたつめ写真表示 Private Sub Worksheet_Change(ByVal Target As Range) Dim fName As String, pict As Shape If Target.Address <> "$AT$4" Then Exit Sub fName = ThisWorkbook.Path & "\map_Image\" & Target.Offset(0, 0).Text If Dir(fName) = "" Then fName = ThisWorkbook.Path & "\map_Image\NoImage.jpg" End If With ActiveSheet For Each pict In .Shapes If pict.TopLeftCell.Address = "$k$6" Then pict.Delete Exit For End If Next pict Set pict = .Shapes.AddPicture(fName, msoTrue, msoFalse, _ .Range("k6").Left, .Range("k6").Top, 260, 320) End With End Sub

  • Win2000Server+IIS5.0不定期にダウン

    現在、Win2000server(SP2)とIIS5.0という構成になっており、クライアント端末の特定のWebページが真っ白くなる現象が不定期に(端末・日時・曜日・時間帯共に)起こっています。 IIS5.0のログを参照しますと、[ASP_0147]500 Server Error というログが表示されているのですが、原因不明なため応急処置としてIIS5.0の再起動を行い、現状を凌いでいる状況です。 IIS5.0の再起動を行うと、クライアント端末は通常のWeb表示がされます。 高トラヒックによりダウンしているのかと思い、Microsoftの負荷ツール「Application stress tool」を使用し試験を実施しましたが、現状考えられる最大負荷の約10倍の高負荷にも関わらず、IIS5.0はダウンしませんでした。 また、ウィルスにも感染しているかと思いウィルスチェックも行いましたが、全端末(サーバ、クライアント共に)感染がない事を確認済みです。 今後は(1)Win2000ServerのSP3をあてる(2)MS-IISの修正に関するMS01-026修正パッチをあてることを想定していますが、根本的な解決には繋がらないと思っています。 もし、この問題に対する解決方法をご存知でしたら、是非お教え頂きたいと思っています。宜しくお願い致します。

  • Excel非表示行中のshapeが移動できない

    Excel VBAで不明な点がありましたので、質問させてください。 オートシェイプ(四角形/msoRectangle)を、VBAで移動、変形させていたのですが、オートシェイプのある行を非表示にした場合、表示している行以外に移動させても、オートシェイプが表示されません。 ・shapes.Topやshapes.Leftは変更されています。 ・shapes.visibleもmsoTrueです。 ・activesheet.activateでシートを更新してみても表示されません。 ・該当行を非表示から表示にしたら、変更後の位置、大きさにオートシェイプが出現します。 これは、エクセルの仕様(バグ)なのでしょうか? それとも、何か別の設定を行えば、行を非表示にしたまま、オートシェイプを別の位置に移動(出現)させることができるのでしょうか? どうか、皆様のお知恵をお貸しください。 OSはWin7Pro 32bit、Excelは2010です。

  • C#からパワーポイントを表示

    C#でパワーポイントの資料を立ち上げて表示したいと思っていますが、 うまくいきません。 どうかアドバイスをよろしくお願いします。 使用している環境は Windows XP Office 2003 Visual Studio 2005 です。 私が書いたソースは下記の通りです。 これを実行すると、パワーポイントのからっぽのものが 立ち上がりpptpathでしているファイルの中身が表示されない 状態となります。 よろしくお願いいたします。 以下、内容------------------- 「参照」でMicrosoft Object Libraryを読み込んでおり、 また以下をusingで指定します。 using System; using System.IO; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Microsoft.Office.Interop.PowerPoint; using Microsoft.Office.Core; ・・・・以下が関数の該当部分です。 ApplicationClass app = new ApplicationClass(); app.Visible = MsoTriState.msoTrue; Presentation ppt = app.Presentations.Open(pptpath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse); app.Activate(); よろしくお願いします。

  • Windows2000サーバー + ASP.NET2.0 環境構築

    お世話になります。 現在、開発を進めております、とあるWebアプリケーションの環境構築方法について質問させていただきます。 そのアプリケーションは前提として以下の条件です (1)Windows2000サーバー【IIS5.0】 (2)ASP.NET2.0【VisualStudio2005 VB.NET】 (3)Oracle8.1.7【Oracle8i】 弊社にはWindows2000サーバーがありません 仕方が無く、Windows2003サーバーをテスト環境として開発を進めていました。(この時点で問題だが・・・。) 来月中旬に導入予定なのですが、Windows2000サーバーにWebアプリケーションを載せる場合に必要な 環境構築の設定を確認している次第です。 ユーザー様のWindows2000サーバは既にIISとOracleはインストールされていると聞いています。 ■ユーザー様の設定  I.Microsoft .NET Framework 2.0のインストール  II.アプリケーションの配布方法の確認、IISに仮想ディレクトリを指定しアプリケーションの配布を行うこと。  III.Oracleデータベース定義   IIの部分で、IISのユーザー作成が必要となりますか?? また、これ以外で作業が抜けていると思われるところをご教授いただけないでしょうか?? 皆様のお知恵をお貸しください。 どうかよろしくおねがいいたします。