lostyazilim
tr.link

ASP NET C# Sitemap Oluştuma Hatası

10 Mesajlar 1.438 Okunma
lstbozum
tr.link

kadiraltay kadiraltay WM Aracı Kullanıcı
  • Üyelik 09.10.2013
  • Yaş/Cinsiyet 39 / E
  • Meslek girişimci
  • Konum Kocaeli
  • Ad Soyad ** **
  • Mesajlar 31
  • Beğeniler 1 / 6
  • Ticaret 1, (%100)
Burada ki hatayı bir türlü çözemedim hatanın ne olduğunu bilenler yardımcı olabilirmi?

Aps Net C#



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Xml;
using System.Data.OleDb;

public partial class sitemap : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear(); //sitemap xml formatlı olduğundan sayfamızın içeriğini temizliyoruz.
Response.ContentType = "text/xml";

XmlTextWriter xr = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
xr.WriteStartDocument();
xr.WriteStartElement("urlset"); // sitemap standartı gereği urlset düğümü oluşturuyoruz.

// aşağıdaki kodlar ile sitemap`in hangi standartlara uygun olduğunuz belirliyoruz.
xr.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
xr.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
xr.WriteAttributeString("xsi:schemaLocation","http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd ");


//sdasd

OleDbConnection db_baglanti;
db_baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; DATA Source=" + Server.MapPath("veri.mdb"));
try
{
db_baglanti.Open();
OleDbCommand db_komut = new OleDbCommand("Select * from sayfa", db_baglanti);
OleDbDataReader alinan_veri;
alinan_veri = db_komut.ExecuteReader();
if (alinan_veri.HasRows)
{
while (alinan_veri.Read())
{
xr.WriteStartElement("url"); // sitemap standartına göre url düğümü oluşturuluyor.
xr.WriteElementString("loc", "http://localhost:2100/fulyeniorj/sayfa.aspx?sf_gt=" + alinan_veri["link"].ToString() + "");
xr.WriteElementString("lastmod", alinan_veri["tarih"].ToString()); //son değiştirme tarihi
xr.WriteElementString("changefreq", "daily"); // sayfa içeriğini değişme frekansı
xr.WriteElementString("priority", "1"); // sayfanın değişme frekansına göre öncelik sırası
}

db_baglanti.Close();
xr.WriteEndDocument();
xr.Flush();
xr.Close();
Response.End();
}
}
catch
{
Response.Write("Bağlantıda sorun var !!!");
}
}

}


Hatada Mesajıda Bu

This page contains the following errors:

error on line 1 at column 1: Document is empty
Below is a rendering of the page up to the first error.


Şimdiden Teşekkür ederim.
 

 

wmaraci
reklam

ontedi ontedi www.ontedi.com Kullanıcı
  • Üyelik 03.10.2013
  • Yaş/Cinsiyet 44 / E
  • Meslek Yazılım Uzmanı, Matematikçi
  • Konum Ankara
  • Ad Soyad S** T**
  • Mesajlar 1118
  • Beğeniler 325 / 324
  • Ticaret 2, (%100)
Hocam,

http://www.ontedi.com/aspnet/aspnet-ile-xml-olusturma-okuma-silme-islemleri

işini görür.
 

 

www.ontedi.com
www.cizgi.site

kadiraltay kadiraltay WM Aracı Kullanıcı
  • Üyelik 09.10.2013
  • Yaş/Cinsiyet 39 / E
  • Meslek girişimci
  • Konum Kocaeli
  • Ad Soyad ** **
  • Mesajlar 31
  • Beğeniler 1 / 6
  • Ticaret 1, (%100)
Cevabınız için teşekkür ederim, verdiğiniz linki inceledim sanırım xml dosyasından veri çekme yöntemlerini anlatmakta benim sorunum ise veritabanımda ki sayfalar sitemap.xml şeklinde google bildirmek. Bunun için öneriniz var mı? Tekrar ilgiliniz için teşekkürler...
 

 

monder33 monder33 WM Aracı Kullanıcı
  • Üyelik 07.01.2016
  • Yaş/Cinsiyet 44 / E
  • Meslek Yazılım
  • Konum İstanbul Avrupa
  • Ad Soyad M** B**
  • Mesajlar 47
  • Beğeniler 9 / 7
  • Ticaret 0, (%0)
Buna benzer bir yapıyı bende kullanmıştım, sizin kodlarınız üzerinde inceleme yapınca aşağıda denediğim statik örnek çalışmakta, muhtemelen hata alma nedeniniz veritabanı ile ilgili olan işlemleriniz de olan bir hatadan kaynaklanıyor olabilir.

Farklı örneklere bakmadan önce isterseniz bir o tarafı inceleyiniz.




using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Xml;

namespace test
{
public partial class yeni : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear(); //sitemap xml formatlı olduğundan sayfamızın içeriğini temizliyoruz.
Response.ContentType = "text/xml";

XmlTextWriter xr = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
xr.WriteStartDocument();
xr.WriteStartElement("urlset"); // sitemap standartı gereği urlset düğümü oluşturuyoruz.

// aşağıdaki kodlar ile sitemap`in hangi standartlara uygun olduğunuz belirliyoruz.
xr.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
xr.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
xr.WriteAttributeString("xsi:schemaLocation","http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd ");

xr.WriteStartElement("url");
xr.WriteElementString("loc", "http://www.sitemaps.org//iletisim/");
xr.WriteEndElement();

xr.WriteEndDocument();
xr.Flush();
xr.Close();

Response.End();
}
}
}
 

 

https://www.bingezi.com
wmaraci
wmaraci

kadiraltay kadiraltay WM Aracı Kullanıcı
  • Üyelik 09.10.2013
  • Yaş/Cinsiyet 39 / E
  • Meslek girişimci
  • Konum Kocaeli
  • Ad Soyad ** **
  • Mesajlar 31
  • Beğeniler 1 / 6
  • Ticaret 1, (%100)
Veri tabanı ile ilgili kodları başka bir deneme sayfasında yapıp denediğimde bir sorun gözükmüyor sorun xml sayfasını oluştururken veri tabanındaki verileri çekemiyor olmasından kaynaklanıyor. Sizce bu sorunun sebebi ne olabilir.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.OleDb;

public partial class deneme : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

OleDbConnection db_baglanti;

db_baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; DATA Source=" + Server.MapPath("App_Data/veri.mdb"));
try
{
db_baglanti.Open();
OleDbCommand db_komut = new OleDbCommand("Select * from sayfa", db_baglanti);
OleDbDataReader alinan_veri;
alinan_veri = db_komut.ExecuteReader();
if (alinan_veri.HasRows)
{
Literal1.Text += "";
Literal1.Text += "";
Literal1.Text += "";
Literal1.Text += "";
Literal1.Text += "";
Literal1.Text += "";
Literal1.Text += "";
int i = 1;
while (alinan_veri.Read())
{
//Response.Write(alinan_veri["ad"] + "
");
Literal1.Text += "";
Literal1.Text += "";
Literal1.Text += "";
Literal1.Text += "";
Literal1.Text += "";
Literal1.Text += "";
Literal1.Text += "";
i++;
}
Literal1.Text += "
Sıra NoBaşlıkLinkKategoriTarih
" + i.ToString() + "" + alinan_veri["baslik"].ToString() + "" + alinan_veri["link"].ToString() + "" + alinan_veri["kategori"].ToString() + "" + alinan_veri["tarih"].ToString() + "
";

db_baglanti.Close();
}
}
catch
{
Response.Write("Bağlantıda sorun var !!!");
}
}
}






using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Xml;
using System.Data.OleDb;

public partial class sitemap : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear(); //sitemap xml formatlı olduğundan sayfamızın içeriğini temizliyoruz.
Response.ContentType = "text/xml";

XmlTextWriter xr = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
xr.WriteStartDocument();
xr.WriteStartElement("urlset"); // sitemap standartı gereği urlset düğümü oluşturuyoruz.

// aşağıdaki kodlar ile sitemap`in hangi standartlara uygun olduğunuz belirliyoruz.
xr.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
xr.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
xr.WriteAttributeString("xsi:schemaLocation","http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd ");

// Aşağıdaki 6 satır ile de herhangi bir sayfayı sitemap`e ekliyoruz.
xr.WriteStartElement("url"); // sitemap standartına göre url düğümü oluşturuluyor.
xr.WriteElementString("loc", "http://localhost/default.aspx");
xr.WriteElementString("lastmod", DateTime.Now.ToString("yyyy-MM-dd")); //son değiştirme tarihi
xr.WriteElementString("changefreq", "daily"); // sayfa içeriğini değişme frekansı
xr.WriteElementString("priority", "1"); // sayfanın değişme frekansına göre öncelik sırası
xr.WriteEndElement();

//Deneme Sayfası
OleDbConnection db_baglanti;

db_baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; DATA Source=" + Server.MapPath("App_Data/veri.mdb"));
try
{
db_baglanti.Open();
OleDbCommand db_komut = new OleDbCommand("Select * from sayfa", db_baglanti);
OleDbDataReader alinan_veri;
alinan_veri = db_komut.ExecuteReader();
while (alinan_veri.Read())
{
xr.WriteStartElement("url");
xr.WriteElementString("loc", "http://localhost:11524/fulyeniorj/" + alinan_veri["link"].ToString());

xr.WriteElementString("lastmod", alinan_veri["tarih"].ToString());
xr.WriteElementString("priority", "0.5");
xr.WriteElementString("changefreq", "monthly");

xr.WriteEndElement();

db_baglanti.Close();
}

xr.WriteEndDocument();
xr.Flush();
xr.Close();
Response.End();
}
catch
{
Response.Write("Bağlantıda sorun var !!!");
}
//Deneme Sayfası
}
}


 

 

monder33 monder33 WM Aracı Kullanıcı
  • Üyelik 07.01.2016
  • Yaş/Cinsiyet 44 / E
  • Meslek Yazılım
  • Konum İstanbul Avrupa
  • Ad Soyad M** B**
  • Mesajlar 47
  • Beğeniler 9 / 7
  • Ticaret 0, (%0)
Konuyu baya bir kurcaladım, hem access ile hemde mysql ile test yaptım dediğin problem ile aynı şekilde karşılaştım, eski yaptığım proje ve örneklere de baktım windows kuualndığım dönemlerde SQL Server ile yaptığım bir örneğe bakınca problemin nedeninin ve çözümünü buldum.



XML tanımlaması yani, Response.ContentType = "text/xml"; tanımladığın bir sayfada OleDbConnection, MySqlConnection, SqlConnection gibi nesneleri kullanınca problem oluyor, çözüm olarak da bu tip işlemleri App_Code içine açacağın bir veritabanı model classı üzerinden çekerek bu sorunu tamamen aşabiliyorsun.




İstersen bu yolu izleyebilirsin ve problem yaşadığın nokta olursa yine sorabilirsin.

Kolay Gelsin
 

 

https://www.bingezi.com

kadiraltay kadiraltay WM Aracı Kullanıcı
  • Üyelik 09.10.2013
  • Yaş/Cinsiyet 39 / E
  • Meslek girişimci
  • Konum Kocaeli
  • Ad Soyad ** **
  • Mesajlar 31
  • Beğeniler 1 / 6
  • Ticaret 1, (%100)
Yardımlarınız için çok teşekkür ederim sizden ricam bu kodları görsel değil de kod olarak paylaşabilir misiniz?
 

 

monder33 monder33 WM Aracı Kullanıcı
  • Üyelik 07.01.2016
  • Yaş/Cinsiyet 44 / E
  • Meslek Yazılım
  • Konum İstanbul Avrupa
  • Ad Soyad M** B**
  • Mesajlar 47
  • Beğeniler 9 / 7
  • Ticaret 0, (%0)
Baya eski bir projeydi, hatta ilk ASP.NET çalışmalarımdan, işine yarayacak bölümleri ekledim, bunları kendi sistemine uyarlayabilirsin.

Kolay gelsin.


using System;
using System.Data;
using System.Data.SqlClient;
using System.Xml;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public class baglanti
{
SqlConnection conn;
SqlDataAdapter dtAdapter, sAdapter;
SqlCommand Cmd,sorgu;
public SqlDataReader Oku;
XmlTextReader veriOku;

public baglanti()
{
//conn = new SqlConnection(@"Data Source=ONDER-33\SQLEXPRESS;Initial Catalog=samatya;Integrated Security=True");
conn = new SqlConnection("workstation id=;packet size=4096;user id=;pwd=;data source=;persist security info=False;initial catalog=samatya");
}

public void ac()
{
conn.Open();
}

public void kapat()
{
conn.Close();
}

public double kayitSayisi(string s)
{
sorgu = new SqlCommand(s, conn);
int sayi = (int)sorgu.ExecuteScalar();
return Convert.ToDouble(sayi);
}

public void Calistir(string Sorgu)
{
Cmd = new SqlCommand(Sorgu,conn);

if (Sorgu.Substring(0, 6) == "select" || Sorgu.Substring(0, 6) == "SELECT")
{
Oku = Cmd.ExecuteReader();
}
else
{
Cmd.ExecuteNonQuery();
}
}
}



using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.Xml;

public partial class sitemap : System.Web.UI.Page
{
baglanti b,c;
kontrol k;
veriislem v;

protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.ContentType = "text/html";

XmlTextWriter objX = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
objX.WriteStartDocument();

objX.WriteStartElement("urlset");
objX.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
objX.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
objX.WriteAttributeString("xsi:schemaLocation", "http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd ");

objX.WriteStartElement("url");
objX.WriteElementString("loc", "http://localhost/");
objX.WriteEndElement();

k = new kontrol();
v = new veriislem();
c = new baglanti();
c.ac();
c.Calistir("select * from kategoriler order by id desc");

while (c.Oku.Read())
{
objX.WriteStartElement("url");
objX.WriteElementString("loc", "http://localhost/kategori.aspx?id=" + c.Oku["id"].ToString() + "-" + k.degistir(c.Oku["baslik"].ToString()));
objX.WriteEndElement();
}
c.kapat();

b = new baglanti();
b.ac();
b.Calistir("select id,baslik from konular order by id desc");

while (b.Oku.Read())
{
objX.WriteStartElement("url");
objX.WriteElementString("loc", "http://http://localhost/detay.aspx?id=" + b.Oku["id"].ToString() + "-" + k.degistir(b.Oku["baslik"].ToString()));
objX.WriteEndElement();
}
b.kapat();

objX.WriteEndDocument();
objX.Flush();
objX.Close();
Response.End();
}
}
 

 

https://www.bingezi.com

kadiraltay kadiraltay WM Aracı Kullanıcı
  • Üyelik 09.10.2013
  • Yaş/Cinsiyet 39 / E
  • Meslek girişimci
  • Konum Kocaeli
  • Ad Soyad ** **
  • Mesajlar 31
  • Beğeniler 1 / 6
  • Ticaret 1, (%100)
Merhabalar Tekrar rahatsız ediyorum kusuruma bakmayın asp.net de daha yeniyim o yüzden çok fazla tıkandığım yerler var şimdi dediğiniz şekilde veri tabanı bağlantı komutlarını Response.ContentType = "text/xml"; komutlarının dışarısına taşımaya çalıyorum hatayla karşılaştım şöyle bir sorunum olacak sql server olarak yada Microsoft Acces "mdb" olarak veri çekme ile arasın da fark var mı peki dosya çağrılmayla ilgili şuan dediklerinizi ve saolasınız gönderdiğiniz kodlarla ilgili düzenlemeye çalıştığım şekilde sisteme yükledim ama sorun hala devam etmekte. Açıkcası asp.net phpye göre çok karışık geldi.

İlginiz için teşekkürler iyi çalışmalar...
 

 

monder33 monder33 WM Aracı Kullanıcı
  • Üyelik 07.01.2016
  • Yaş/Cinsiyet 44 / E
  • Meslek Yazılım
  • Konum İstanbul Avrupa
  • Ad Soyad M** B**
  • Mesajlar 47
  • Beğeniler 9 / 7
  • Ticaret 0, (%0)
Burada püf noktaları,

using System.Data.SqlClient; yerine using System.Data.OleDb;

Tabi olmazsa olmaz Connection stringi

Birde SqlConnection -> OleDbConnection - SqlCommand -> OleDbCommand - SqlDataReader -> OleDbDataReader

Önemli noktalar bunlar, istersen tekrar bir bak, hata alırsan hata aldığın kodu yaz bakalım.

Kolay Gelsin.
 

 

https://www.bingezi.com
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al