1

Windows Server Web(SP2)がインストールされているテストサーバーでテストWebサイトを実行しています。.NET4.5をインストールしました。Webサイト(テンプレートからの単純なASP.NET Webフォーム)では、Entity Framework 5 Spatialタイプを使用しました。これは、ローカルの開発マシンで正常に実行されるテスト用の非常に単純なコードです。

var conn = new DbEntities();
var geo = conn.tbl_SpatialData.First().GeoInfo;
var geom = DbGeometry.FromGml(geo.AsGml());
litText.Text = geom.AsGml();

ただし、サーバーでは次のエラーが発生します。

アセンブリ'Microsoft.SqlServer.Types'バージョン10以降が見つからなかったため、このプロバイダーでは空間タイプと関数を使用できません。

接続するSQLデータベースは別のサーバー上にあり、SQLServer2008です->ローカル開発マシンから同じデータベースに接続しています。

ローカルマシンでdllを検索し、それをWebサイトのbinフォルダーに追加しようとしましたが、別のdllを要求する新しいエラーが発生します。私の開発マシンのように、これらのdllをグローバルにインストールしたいと思います。何が欠けているのですか、それともサーバーにインストールする必要がありますか?

前もって感謝します!

4

2 に答える 2

1

そのアセンブリとその依存関係は、SQLServer管理オブジェクトの一部です。この機能はサーバーにインストールする必要があります。これは、SQLServerのクライアントツールまたはクライアントツールSDKの一部である必要があります。

于 2012-09-25T10:11:59.523 に答える
-1

これが公開サーバーで提供される場合、これは役立つ可能性があります

http://blogs.msdn.com/b/adonet/archive/2013/12/09/microsoft-sqlserver-types-nuget-package-spatial-on-azure.aspx

サーバーを制御できる場合は、SQLServerのCLRタイプをインストールするだけです。SQL Server2012SP1バージョンのCLRタイプはここからダウンロードできますSQLSysClrTypes.msiは必要なインストーラーであり、デプロイ先のマシンのアーキテクチャーに応じて、x86(32ビット)バージョンとx64(64ビット)バージョンがあります。

ただし、ターゲットマシンに追加のソフトウェアをインストールすることは、常にオプションであるとは限りません。特に、所有していないマシン(Windows Azure Webサイトなど)に展開する場合はそうです。幸い、必要なアセンブリをアプリケーションと一緒に展開できます。

手順1:Microsoft.SqlServer.TypesNuGetパッケージをインストールします。

PM> Install-Package Microsoft.SqlServer.Types

手順2:適切なバージョンのネイティブ SqlServerSpatial110.dllアセンブリが出力ディレクトリにコピーされ、アプリケーションとともに展開されていることを確認します。

これを行う方法の手順は、パッケージのインストール時にVisualStudioで開くReadMe.txtファイルに含まれています。

于 2015-08-05T10:21:47.783 に答える