--------------------------------------------------------------------------------
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
编译器错误信息: CS0117: “string”并不包含对“IsNullOrEmpty”的定义
源错误:
行 29:
行 30: void admob_append_params(StringBuilder admob_params, String key, String val) {
行 31: if (!string.IsNullOrEmpty(val))
行 32: admob_params.Append("&").Append(HttpUtility.UrlEncode(key, Encoding.UTF8)).Append("=").Append(HttpUtility.UrlEncode(val, Encoding.UTF8));
行 33: }
源文件: D:\wwwroot\admobcsharp.aspx 行: 31
源文件:
<%@ Page Language="C#" %>
<%
Hashtable admobParams = new Hashtable();
admobParams.Add(ADMOB_SITE_ID, "a1475614346a14d"); // REQUIRED - get from admob.com
admobParams.Add(ADMOB_MARKUP, ""); // OPTIONAL - Your site markup, "xhtml", "wml", "chtml"
admobParams.Add(ADMOB_AREA_CODE, ""); // OPTIONAL - Area Code, e.g. "415"
admobParams.Add(ADMOB_COORDINATES, ""); // OPTIONAL - Latitude and Longitude (comma separated), e.g. "37.563657,-122.324807"
admobParams.Add(ADMOB_POSTAL_CODE, ""); // OPTIONAL - Postal Code, e.g. "90210"
admobParams.Add(ADMOB_DOB, ""); // OPTIONAL - Date of Birth formatted like YYYYMMDD, e.g. "19800229"
admobParams.Add(ADMOB_GENDER, ""); // OPTIONAL - Gender, m[ale] or f[emale]
admobParams.Add(ADMOB_KEYWORDS, ""); // OPTIONAL - keywords, e.g. "sports baseball la dodgers"
admobParams.Add(ADMOB_SEARCH, ""); // OPTIONAL - visitor's search term. e.g. "free games"
// request the ad
Response.Write(admob_ad(admobParams));
%>
<%--
// request more ads by copying this snippet elsewhere on your page
Response.Write(admob_ad(admobParams));
--%>
<script runat="server">
// AdMob Publisher Code
// Language: C# (.NET)
// Version: 20080401
// Copyright AdMob, Inc., All rights reserved
// change to "live" when ready to deploy
const string ADMOB_MODE = "test";
void admob_append_params(StringBuilder admob_params, String key, String val) {
if (!string.IsNullOrEmpty(val))
admob_params.Append("&").Append(HttpUtility.UrlEncode(key, Encoding.UTF8)).Append("=").Append(HttpUtility.UrlEncode(val, Encoding.UTF8));
}
string admob_md5(string val) {
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] hashBytes = md5.ComputeHash(encoding.GetBytes(val));
StringBuilder md5Val = new StringBuilder();
foreach (byte b in hashBytes) {
md5Val.Append(String.Format("{0:x2}", b));
}
return md5Val.ToString();
}
void admob_append_headers(StringBuilder admob_params) {
ArrayList admob_ignore = new ArrayList();
admob_ignore.Add("PRAGMA");
admob_ignore.Add("CACHE-CONTROL");
admob_ignore.Add("CONNECTION");
admob_ignore.Add("USER-AGENT");
admob_ignore.Add("COOKIE");
NameValueCollection admob_names = Request.Headers;
foreach (string name in admob_names){
if (!admob_ignore.Contains(name.ToUpper())) {
string admob_value = string.Join(",", Request.Headers.GetValues(name));
admob_params.Append("&").Append(HttpUtility.UrlEncode("h[" + name + "]", Encoding.UTF8));
admob_params.Append("=").Append(HttpUtility.UrlEncode(admob_value, Encoding.UTF8));
}
}
}
string admob_ad(Hashtable admobParams) {
// build url
StringBuilder admob_post = new StringBuilder();
admob_post.Append("s=").Append((string)admobParams[ADMOB_SITE_ID]);
admob_append_params(admob_post, "u", Request.UserAgent);
admob_append_params(admob_post, "i", Request.UserHostAddress);
admob_append_params(admob_post, "p", Request.Url.ToString());
admob_append_params(admob_post, "t", admob_md5(Session.SessionID));
admob_append_params(admob_post, "e", "UTF-8");
admob_append_params(admob_post, "ma", (string)admobParams[ADMOB_MARKUP]);
admob_append_params(admob_post, "v", ADMOB_VERSION);
admob_append_params(admob_post, "d[pc]", (string)admobParams[ADMOB_POSTAL_CODE]);
admob_append_params(admob_post, "d[ac]", (string)admobParams[ADMOB_AREA_CODE]);
admob_append_params(admob_post, "d[coord]", (string)admobParams[ADMOB_COORDINATES]);
admob_append_params(admob_post, "d[dob]", (string)admobParams[ADMOB_DOB]);
admob_append_params(admob_post, "d[gender]", (string)admobParams[ADMOB_GENDER]);
admob_append_params(admob_post, "k", (string)admobParams[ADMOB_KEYWORDS]);
admob_append_params(admob_post, "search", (string)admobParams[ADMOB_SEARCH]);
admob_append_headers(admob_post);
if (ADMOB_MODE == "test") admob_post.Append("&m=test");
StringBuilder admob_contents = new StringBuilder();
try{// request ad
byte[] admob_post_bytes = System.Text.Encoding.UTF8.GetBytes(admob_post.ToString());
System.Net.WebRequest admob_request = System.Net.WebRequest.Create(ADMOB_ENDPOINT);
admob_request.Method = "POST";
admob_request.ContentType = "application/x-www-form-urlencoded";
admob_request.ContentLength = admob_post_bytes.Length;
admob_request.Timeout = ADMOB_TIMEOUT;
System.IO.Stream admob_os = admob_request.GetRequestStream();
admob_os.Write(admob_post_bytes, 0, admob_post_bytes.Length);
admob_os.Close();
System.Net.HttpWebResponse admob_response = (System.Net.HttpWebResponse)admob_request.GetResponse();
System.IO.StreamReader admob_reader = new System.IO.StreamReader(admob_response.GetResponseStream());
admob_contents.Append(admob_reader.ReadToEnd().Trim());
}
catch (Exception){
admob_contents.Append("<img src=\"http://t.admob.com/li.php/c.gif/u/").Append((string)admobParams[ADMOB_SITE_ID]).Append("/1/").Append(ADMOB_TIMEOUT).Append("/").Append(admob_md5(Request.UserHostAddress)).Append("\" alt=\"\" width=\"1\" height=\"1\" />");
}
return admob_contents.ToString();
}
const string ADMOB_ENDPOINT = "http://r.admob.com/ad_source.php";
const string ADMOB_VERSION = "20080401-CSHARP-36372ed0888e5ecd";
const int ADMOB_TIMEOUT = 1000;
const string ADMOB_SITE_ID = "ADMOB_SITE_ID", ADMOB_MARKUP = "ADMOB_MARKUP", ADMOB_POSTAL_CODE = "ADMOB_POSTAL_CODE", ADMOB_AREA_CODE = "ADMOB_AREA_CODE", ADMOB_COORDINATES = "ADMOB_COORDINATES", ADMOB_DOB = "ADMOB_DOB", ADMOB_GENDER = "ADMOB_GENDER", ADMOB_KEYWORDS = "ADMOB_KEYWORDS", ADMOB_SEARCH = "ADMOB_SEARCH";
</script>
新人一个,怎么解决?
13 个解决方案
#1
这个函数是 2.0 新增的
你的网站运行在 1.1 下?
你的网站运行在 1.1 下?
#2
#3

#4
路过,关注....
#5
#6
语句写的没有问题.不过你运行的环境是.net2.0吗?
#7
我已经装了.net framework 2.0了
#8
截图放在3楼
#9
你那个截图只说明 IIS 支持 asp.net 2.0 的网站程序
某个具体的虚拟目录还是可以选择使用 1.1 , 还是 2.0 的
看看虚拟目录的属性
某个具体的虚拟目录还是可以选择使用 1.1 , 还是 2.0 的
看看虚拟目录的属性
#10
此方法在 .NET Framework 2.0 版中是新增的。
检查一下你的运行环境
检查一下你的运行环境
#11

#12
非常感谢Dobzhansky
问题解决,哈哈
问题解决,哈哈
#13
就是這樣啊~
#1
这个函数是 2.0 新增的
你的网站运行在 1.1 下?
你的网站运行在 1.1 下?
#2
#3

#4
路过,关注....
#5
#6
语句写的没有问题.不过你运行的环境是.net2.0吗?
#7
我已经装了.net framework 2.0了
#8
截图放在3楼
#9
你那个截图只说明 IIS 支持 asp.net 2.0 的网站程序
某个具体的虚拟目录还是可以选择使用 1.1 , 还是 2.0 的
看看虚拟目录的属性
某个具体的虚拟目录还是可以选择使用 1.1 , 还是 2.0 的
看看虚拟目录的属性
#10
此方法在 .NET Framework 2.0 版中是新增的。
检查一下你的运行环境
检查一下你的运行环境
#11

#12
非常感谢Dobzhansky
问题解决,哈哈
问题解决,哈哈
#13
就是這樣啊~