仮想サーバー IISでWMIの問題
-
23-08-2019 - |
質問
私が課題であるかが課題とこのコード:
public static ArrayList GetEthernetMacAddresses()
{
ArrayList addresses = new ArrayList();
ManagementClass mc = new ManagementClass("Win32_NetworkAdapter");
// This causes GetInstances(options)
// to return all subclasses of Win32_NetworkAdapter
EnumerationOptions options = new EnumerationOptions();
options.EnumerateDeep = true;
foreach (ManagementObject mo in mc.GetInstances(options)) {
string macAddr = mo["MACAddress"] as string;
string adapterType = mo["AdapterType"] as string;
if (!StringUtil.IsBlank(macAddr) && !StringUtil.IsBlank(adapterType))
{
if (adapterType.StartsWith("Ethernet")) {
addresses.Add(macAddr);
}
}
}
return addresses;
}
当(Win2003)仮想サーバー、この作品が実行の一環としてコンソール-アプリケーションからwebサービスを走らIIS(同になります。
または、使用できますこのコードをwebサービスIIS(仮想サーバーの戻り値:
public static string GetMacAddresses()
{
ManagementClass mgmt = new ManagementClass(
"Win32_NetworkAdapterConfiguration"
);
ManagementObjectCollection objCol = mgmt.GetInstances();
foreach (ManagementObject obj in objCol)
{
if ((bool)obj["IPEnabled"])
{
if (sb.Length > 0)
{
sb.Append(";");
}
sb.Append(obj["MacAddress"].ToString());
}
obj.Dispose();
}
}
なぜ一作目なのですか?
だけがなぜそういうわけで、これによりIIS webサービスは、仮想マシン?
の手によりお願い申し上げます。
更新: しかしながら電話での放射性物質吸着除染剤の異なるレベルのMS支援のた最終的にこの"設計".
ですので、ドライバーの仮想ネットワークアダプタのドライバーに答えしたことには変更コード"の号です。
することができな信頼性の高い検査コードの仮想サーバがない限り、同じコードを使用した物理サーバーからない保証は、サーバーの正確なレプリカ...
解決
大丈夫で書いたこのコードの問題:
public void GetWin32_NetworkAdapter()
{
DataTable dt = new DataTable();
dt.Columns.Add("AdapterName", typeof(string));
dt.Columns.Add("ServiceName", typeof(string));
dt.Columns.Add("AdapterType", typeof(string));
dt.Columns.Add("IPEnabled", typeof(bool));
dt.Columns.Add("MacAddress", typeof(string));
//Try getting it by Win32_NetworkAdapterConfiguration
ManagementClass mgmt = new ManagementClass("Win32_NetworkAdapter");
EnumerationOptions options = new EnumerationOptions();
options.EnumerateDeep = true;
ManagementObjectCollection objCol = mgmt.GetInstances(options);
foreach (ManagementObject obj in objCol)
{
DataRow dr = dt.NewRow();
dr["AdapterName"] = obj["Caption"].ToString();
dr["ServiceName"] = obj["ServiceName"].ToString();
dr["AdapterType"] = obj["AdapterType"];
dr["IPEnabled"] = (bool)obj["IPEnabled"];
if (obj["MacAddress"] != null)
{
dr["MacAddress"] = obj["MacAddress"].ToString();
}
else
{
dr["MacAddress"] = "none";
}
dt.Rows.Add(dr);
}
gvConfig.DataSource = dt;
gvConfig.DataBind();
}
時渋谷、のんべい横丁にあるバー。身体IISボックスを取得します:物理IISサーバー http://img14.imageshack.us/img14/8098/physicaloutput.gif
同じコードをバーチャルIISサーバー:仮想サーバー http://img25.imageshack.us/img25/4391/virtualoutput.gif
見間関係についての理解を得ます。 であります。)仮想サーバーとならないの"AdapterType"文字列です。その独自のコードに失敗した.
これまで興味深い。の場合仮想サーバーに"仮想"を表現したリアルIISサーバーが記載されていないのはなぜで返し同じ価値観を
他のヒント
されている理由は何でしょうか二つの帰結果は?これにより、異なるユーザーアカウントを取得するでしょう異なる結果から、コンソールからのサービスです。
なぜ(1)合(2)。することは可能でnullの結果adapterTypeを返しでnull値?その場合、そのコードを取り扱うこですか?